Annotation.st
author Claus Gittinger <cg@exept.de>
Sun, 04 Sep 2011 11:15:48 +0200
changeset 13623 46625f58d8ee
parent 13613 f3c2a2ac07a1
child 13625 fffe5dbb451b
permissions -rw-r--r--
changed: #loadAsAutoloaded:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
     1
"
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
     2
 COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
     3
              All Rights Reserved
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
     4
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
     5
Permission is hereby granted, free of charge, to any person
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
     6
obtaining a copy of this software and associated documentation
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
     7
files (the 'Software'), to deal in the Software without
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
     8
restriction, including without limitation the rights to use,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
     9
copy, modify, merge, publish, distribute, sublicense, and/or sell
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    10
copies of the Software, and to permit persons to whom the
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    11
Software is furnished to do so, subject to the following
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    12
conditions:
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    13
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    14
The above copyright notice and this permission notice shall be
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    15
included in all copies or substantial portions of the Software.
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    16
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    17
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    18
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    19
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    20
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    21
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    22
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    23
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    24
OTHER DEALINGS IN THE SOFTWARE.
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    25
"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    26
"{ Package: 'stx:libbasic' }"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    27
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    28
Object subclass:#Annotation
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    29
	instanceVariableNames:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    30
	classVariableNames:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    31
	poolDictionaries:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    32
	category:'Kernel-Extensions'
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    33
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    34
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    35
Annotation subclass:#NameSpace
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    36
	instanceVariableNames:'nameSpace'
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    37
	classVariableNames:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    38
	poolDictionaries:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    39
	privateIn:Annotation
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    40
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    41
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    42
Annotation subclass:#Resource
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    43
	instanceVariableNames:'type value'
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    44
	classVariableNames:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    45
	poolDictionaries:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    46
	privateIn:Annotation
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    47
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    48
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    49
Annotation subclass:#Unknown
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    50
	instanceVariableNames:'key arguments'
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    51
	classVariableNames:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    52
	poolDictionaries:''
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    53
	privateIn:Annotation
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    54
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    55
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    56
Annotation comment:'I represent an occurrence of a pragma in a compiled method.  A pragma is a literal message pattern that occurs between angle brackets at the start of a method after any temporaries.  A common example is the primitive pragma:
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    57
	<primitive: 123 errorCode: ''errorCode''>
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    58
but one can add one''s own and use them as metadata attached to a method.  Because pragmas are messages one can browsse senders and implementors and perform them.  One can query a method for its pragmas by sendng it the pragmas message, which answers an Array of instances of me, one for each pragma in the method.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    59
I can provide information about the defining class, method, its selector, as well as the information about the pragma keyword and its arguments. See the two ''accessing'' protocols for details. ''accessing-method'' provides information about the method the pragma is found in, while ''accessing-pragma'' is about the pragma itself.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    60
Instances are retrieved using one of the pragma search methods of the ''finding'' protocol on the class side.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    61
To browse all methods with pragmas in the system evaluate
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    62
	SystemNavigation default browseAllSelect: [:m| m pragmas notEmpty]
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    63
and to browse all nonprimitive methods with pragmas evaluate
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    64
	SystemNavigation default browseAllSelect: [:m| m primitive isZero and: [m pragmas notEmpty]]'
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    65
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    66
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    67
!Annotation class methodsFor:'documentation'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    68
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    69
copyright
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    70
"
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    71
 COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    72
              All Rights Reserved
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    73
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    74
Permission is hereby granted, free of charge, to any person
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    75
obtaining a copy of this software and associated documentation
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    76
files (the 'Software'), to deal in the Software without
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    77
restriction, including without limitation the rights to use,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    78
copy, modify, merge, publish, distribute, sublicense, and/or sell
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    79
copies of the Software, and to permit persons to whom the
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    80
Software is furnished to do so, subject to the following
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    81
conditions:
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    82
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    83
The above copyright notice and this permission notice shall be
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    84
included in all copies or substantial portions of the Software.
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    85
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    86
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    87
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    88
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    89
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    90
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    91
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    92
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    93
OTHER DEALINGS IN THE SOFTWARE.
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    94
"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    95
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    96
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    97
!Annotation class methodsFor:'initialization'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    98
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
    99
initialize
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   100
    "Invoked at system start or when the class is dynamically loaded."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   101
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   102
    Pragma := self.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   103
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   104
    "Modified: / 20-08-2011 / 21:21:24 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   105
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   106
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   107
!Annotation class methodsFor:'instance creation'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   108
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   109
for: aMethod selector: aSelector arguments: anArray
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   110
	^self new
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   111
		setMethod: aMethod;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   112
		setKeyword: aSelector;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   113
		setArguments: anArray;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   114
		yourself
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   115
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   116
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   117
key: key arguments: arguments
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   118
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   119
    ^(self respondsTo: key)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   120
        ifTrue:
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   121
            [self 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   122
                perform: key 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   123
                withArguments: arguments]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   124
        ifFalse:
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   125
            [Annotation::Unknown new 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   126
                key: key 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   127
                arguments: arguments]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   128
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   129
    "Created: / 19-05-2010 / 16:47:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   130
    "Modified: / 02-07-2010 / 16:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   131
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   132
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   133
namespace: aString
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   134
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   135
    ^Annotation::NameSpace new nameSpaceName: aString
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   136
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   137
    "Created: / 19-05-2010 / 16:01:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   138
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   139
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   140
resource: type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   141
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   142
    ^Annotation::Resource new type: type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   143
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   144
    "Created: / 16-07-2010 / 11:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   145
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   146
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   147
resource: type value: value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   148
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   149
    ^Annotation::Resource new 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   150
        type: type;
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   151
        value: value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   152
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   153
    "Created: / 16-07-2010 / 11:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   154
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   155
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   156
!Annotation class methodsFor:'finding'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   157
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   158
allNamed: aSymbol from: aSubClass to: aSuperClass
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   159
	"Answer a collection of all pragmas found in methods of all classes between aSubClass and aSuperClass (inclusive) whose keyword is aSymbol."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   160
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   161
	^ Array streamContents: [ :stream |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   162
		aSubClass withAllSuperclassesDo: [ :class |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   163
			self withPragmasIn: class do:  [ :pragma |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   164
				pragma keyword = aSymbol
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   165
					ifTrue: [ stream nextPut: pragma ] ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   166
			aSuperClass = class
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   167
				ifTrue: [ ^ stream contents ] ] ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   168
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   169
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   170
allNamed: aSymbol from: aSubClass to: aSuperClass sortedByArgument: anInteger
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   171
	"Answer a collection of all pragmas found in methods of all classes between aSubClass and aSuperClass (inclusive) whose keyword is aSymbol, sorted according to argument anInteger."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   172
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   173
	^ self allNamed: aSymbol from: aSubClass to: aSuperClass sortedUsing: [ :a :b | (a argumentAt: anInteger) < (b argumentAt: anInteger) ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   174
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   175
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   176
allNamed: aSymbol from: aSubClass to: aSuperClass sortedUsing: aSortBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   177
	"Answer a collection of all pragmas found in methods of all classes between aSubClass and aSuperClass (inclusive) whose keyword is aSymbol, sorted according to aSortBlock."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   178
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   179
	^ (self allNamed: aSymbol from: aSubClass to: aSuperClass) sort: aSortBlock.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   180
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   181
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   182
allNamed: aSymbol in: aClass
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   183
	"Answer a collection of all pragmas found in methods of aClass whose keyword is aSymbol."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   184
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   185
	^ Array streamContents: [ :stream |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   186
		self withPragmasIn: aClass do: [ :pragma |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   187
			pragma keyword = aSymbol
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   188
				ifTrue: [ stream nextPut: pragma ] ] ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   189
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   190
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   191
allNamed: aSymbol in: aClass sortedByArgument: anInteger
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   192
	"Answer a collection of all pragmas found in methods of aClass whose keyword is aSymbol, sorted according to argument anInteger."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   193
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   194
	^ self allNamed: aSymbol in: aClass sortedUsing: [ :a :b | (a argumentAt: anInteger) < (b argumentAt: anInteger) ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   195
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   196
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   197
allNamed: aSymbol in: aClass sortedUsing: aSortBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   198
	"Answer a collection of all pragmas found in methods of aClass whose keyword is aSymbol, sorted according to aSortBlock."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   199
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   200
	^ (self allNamed: aSymbol in: aClass) sort: aSortBlock.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   201
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   202
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   203
!Annotation class methodsFor:'private'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   204
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   205
keyword: aSymbol arguments: anArray
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   206
	^ self new
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   207
		setKeyword: aSymbol;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   208
		setArguments: anArray;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   209
		yourself.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   210
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   211
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   212
withPragmasIn: aClass do: aBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   213
        aClass selectorsAndMethodsDo: [ :selector :method | method annotationsDo: aBlock ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   214
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   215
    "Modified: / 20-08-2011 / 21:31:49 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   216
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   217
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   218
!Annotation methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   219
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   220
first
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   221
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   222
    ^self key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   223
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   224
    "Created: / 10-07-2010 / 21:38:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   225
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   226
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   227
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   228
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   229
    ^self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   230
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   231
    "Created: / 19-05-2010 / 16:23:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   232
    "Modified: / 16-07-2010 / 11:29:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   233
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   234
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   235
!Annotation methodsFor:'accessing-method'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   236
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   237
method
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   238
        "Answer the compiled-method containing the pragma."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   239
        
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   240
        self halt:'inimplemented'
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   241
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   242
    "Modified: / 21-08-2011 / 12:44:37 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   243
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   244
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   245
methodClass
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   246
        "Answer the class of the method containing the pragma."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   247
        
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   248
        ^ self method methodClass
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   249
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   250
    "Modified: / 21-08-2011 / 12:44:47 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   251
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   252
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   253
selector
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   254
        "Answer the selector of the method containing the pragma.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   255
         Do not confuse this with the selector of the pragma's message pattern."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   256
        
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   257
        ^ self method selector
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   258
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   259
    "Modified: / 21-08-2011 / 12:45:20 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   260
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   261
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   262
!Annotation methodsFor:'accessing-pragma'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   263
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   264
argumentAt: anInteger
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   265
	"Answer one of the arguments of the pragma."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   266
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   267
	^ self arguments at: anInteger.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   268
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   269
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   270
arguments
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   271
        "Answer the arguments of the receiving pragma. For a pragma defined as <key1: val1 key2: val2> this will answer #(val1 val2)."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   272
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   273
    self subclassResponsibility
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   274
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   275
    "Modified: / 21-08-2011 / 12:43:54 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   276
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   277
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   278
keyword
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   279
        "Answer the keyword of the pragma (the selector of its message pattern).
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   280
         For a pragma defined as <key1: val1 key2: val2> this will answer #key1:key2:."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   281
        
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   282
        self subclassResponsibility
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   283
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   284
    "Modified: / 21-08-2011 / 12:45:07 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   285
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   286
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   287
message
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   288
	"Answer the message of the receiving pragma."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   289
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   290
	^ Message selector: self keyword arguments: self arguments. 
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   291
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   292
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   293
numArgs
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   294
	"Answer the number of arguments in the pragma."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   295
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   296
	^ self arguments size.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   297
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   298
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   299
!Annotation methodsFor:'comparing'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   300
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   301
analogousCodeTo: anObject 
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   302
        ^self class == anObject class
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   303
          and: [self keyword == anObject keyword
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   304
          and: [self arguments = anObject arguments]]
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   305
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   306
    "Modified: / 21-08-2011 / 12:45:37 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   307
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   308
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   309
!Annotation methodsFor:'initialization'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   310
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   311
setArguments: anArray
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   312
    self subclassResponsibility
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   313
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   314
    "Modified: / 21-08-2011 / 12:45:51 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   315
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   316
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   317
setKeyword: aSymbol
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   318
        self subclassResponsibility
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   319
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   320
    "Modified: / 21-08-2011 / 12:46:06 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   321
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   322
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   323
setMethod: aCompiledMethod
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   324
        self subclassResponsibility
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   325
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   326
    "Modified: / 21-08-2011 / 12:46:16 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   327
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   328
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   329
!Annotation methodsFor:'printing'!
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   330
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   331
printOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   332
    "append a printed representation if the receiver to the argument, aStream"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   333
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   334
    self storeOn:aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   335
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   336
    "Modified: / 19-05-2010 / 16:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   337
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   338
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   339
!Annotation methodsFor:'printing & storing'!
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   340
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   341
storeOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   342
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   343
    self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   344
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   345
    "Created: / 19-05-2010 / 16:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   346
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   347
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   348
!Annotation methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   349
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   350
annotatesClass: aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   351
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   352
    ^self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   353
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   354
    "Created: / 20-05-2010 / 11:15:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   355
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   356
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   357
annotatesMethod: aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   358
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   359
    ^self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   360
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   361
    "Created: / 20-05-2010 / 11:15:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   362
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   363
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   364
sendTo: anObject
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   365
	"Send the pragma keyword together with its arguments to anObject and answer the result."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   366
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   367
	^ anObject perform: self keyword withArguments: self arguments
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   368
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   369
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   370
withArgumentsDo: aBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   371
	"Pass the arguments of the receiving pragma into aBlock and answer the result."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   372
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   373
	^ aBlock valueWithArguments: self arguments
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   374
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   375
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   376
!Annotation methodsFor:'testing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   377
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   378
hasLiteral: aLiteral
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   379
        ^self keyword == aLiteral 
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   380
           or: [self arguments hasLiteral: aLiteral]
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   381
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   382
    "Modified: / 21-08-2011 / 12:46:44 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   383
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   384
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   385
hasLiteralSuchThat: aBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   386
        "Answer true if litBlock returns true for any literal in the receiver, even if embedded in further array structure.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   387
         This method is only intended for private use by CompiledMethod hasLiteralSuchThat:"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   388
        ^(aBlock value: self keyword)
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   389
           or: [self arguments hasLiteralSuchThat: aBlock]
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   390
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   391
    "Modified: / 21-08-2011 / 12:46:31 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   392
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   393
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   394
isUnknown
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   395
    ^ false
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   396
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   397
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   398
!Annotation::NameSpace methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   399
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   400
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   401
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   402
    ^#namespace:
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   404
    "Created: / 19-05-2010 / 16:23:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   405
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   406
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   407
nameSpace
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   408
    ^ nameSpace
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   409
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   410
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   411
nameSpace:something
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   412
    nameSpace := something.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   413
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   414
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   415
!Annotation::NameSpace methodsFor:'initialization'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   416
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   417
nameSpaceName: aString
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   418
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   419
    self nameSpace: (NameSpace name: aString)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   420
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   421
    "Created: / 19-05-2010 / 16:02:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   422
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   423
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   424
!Annotation::NameSpace methodsFor:'printing & storing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   425
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   426
storeOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   427
    "superclass Annotation says that I am responsible to implement this method"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   428
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   429
    aStream nextPutAll: '(Annotation namespace: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   430
    nameSpace name storeOn: aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   431
    aStream nextPut:$)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   432
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   433
    "Modified: / 19-05-2010 / 16:27:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   434
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   435
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   436
!Annotation::NameSpace methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   437
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   438
annotatesClass:aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   439
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   440
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   441
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   442
    "Modified: / 20-05-2010 / 11:16:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   443
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   444
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   445
annotatesMethod:aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   446
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   447
    aMethod lookupObject: NamespaceAwareLookup instance
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   448
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   449
    "Modified: / 20-05-2010 / 11:18:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   450
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   451
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   452
!Annotation::Resource methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   453
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   454
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   455
    "superclass Annotation says that I am responsible to implement this method"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   456
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   457
    ^value 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   458
        ifNil:[#resource:]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   459
        ifNotNil:[#resource:value:]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   460
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   461
    "Modified: / 16-07-2010 / 11:30:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   462
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   463
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   464
type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   465
    ^ type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   466
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   467
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   468
type:something
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   469
    type := something.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   470
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   471
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   472
value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   473
    ^ value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   474
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   475
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   476
value:something
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   477
    value := something.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   478
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   479
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   480
!Annotation::Resource methodsFor:'printing & storing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   481
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   482
storeOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   483
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   484
    aStream nextPutAll: '(Annotation resource: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   485
    type storeOn: aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   486
    value ifNotNil:
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   487
        [aStream nextPutAll: ' value: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   488
        value storeOn: aStream].    
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   489
    aStream nextPut:$)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   490
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   491
    "Modified: / 16-07-2010 / 11:36:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   492
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   493
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   494
!Annotation::Resource methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   495
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   496
annotatesClass:aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   497
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   498
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   499
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   500
    "Modified: / 16-07-2010 / 11:28:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   501
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   502
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   503
annotatesMethod:aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   504
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   505
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   506
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   507
    "Modified: / 16-07-2010 / 11:28:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   508
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   509
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   510
!Annotation::Unknown methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   511
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   512
arguments
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   513
    ^ arguments
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   514
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   515
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   516
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   517
    ^ key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   518
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   519
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   520
!Annotation::Unknown methodsFor:'initialization'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   521
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   522
key:keyArg arguments:argumentsArg 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   523
    key := keyArg.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   524
    arguments := argumentsArg.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   525
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   526
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   527
!Annotation::Unknown methodsFor:'printing & storing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   528
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   529
storeOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   530
    "superclass Annotation says that I am responsible to implement this method"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   531
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   532
    aStream nextPutAll: '(Annotation key: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   533
    key storeOn: aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   534
    aStream nextPutAll: ' arguments: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   535
    arguments storeOn: aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   536
    aStream nextPut: $).
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   537
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   538
    "Modified: / 19-05-2010 / 16:46:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   539
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   540
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   541
!Annotation::Unknown methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   542
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   543
annotatesClass:aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   544
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   545
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   546
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   547
    "Modified: / 20-05-2010 / 11:15:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   548
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   549
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   550
annotatesMethod:aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   551
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   552
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   553
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   554
    "Modified: / 20-05-2010 / 11:15:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   555
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   556
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   557
!Annotation::Unknown methodsFor:'testing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   558
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   559
isUnknown
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   560
    ^ true
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   561
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   562
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   563
!Annotation class methodsFor:'documentation'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   564
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   565
version_CVS
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   566
    ^ '$Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.3 2011-08-21 10:47:20 cg Exp $'
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   567
!
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   568
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   569
version_SVN
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   570
    ^ '§Id: Annotation.st,v 1.1 2011/06/28 11:04:04 vrany Exp §'
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   571
! !
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   572
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   573
Annotation initialize!