Annotation.st
author Claus Gittinger <cg@exept.de>
Mon, 29 Oct 2012 11:25:12 +0100
changeset 14447 20f864eaec94
parent 14430 5ddf9b1dd940
child 14500 f5e4720f7fb6
permissions -rw-r--r--
comment/format in: #documentation
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
13625
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
    50
	instanceVariableNames:'method key arguments'
13403
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
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    56
!Annotation class methodsFor:'documentation'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    57
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    58
copyright
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    59
"
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    60
 COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    61
              All Rights Reserved
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    62
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    63
Permission is hereby granted, free of charge, to any person
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    64
obtaining a copy of this software and associated documentation
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    65
files (the 'Software'), to deal in the Software without
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    66
restriction, including without limitation the rights to use,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    67
copy, modify, merge, publish, distribute, sublicense, and/or sell
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    68
copies of the Software, and to permit persons to whom the
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    69
Software is furnished to do so, subject to the following
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    70
conditions:
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    71
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    72
The above copyright notice and this permission notice shall be
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    73
included in all copies or substantial portions of the Software.
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    74
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    75
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    76
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    77
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    78
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    79
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    80
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
    81
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
    82
OTHER DEALINGS IN THE SOFTWARE.
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
    83
"
14430
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    84
!
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    85
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    86
documentation
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    87
"
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    88
    I represent an occurrence of a pragma in a compiled method.  
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    89
    A pragma is a literal message pattern that occurs between angle brackets at the start of a method after any temporaries.  
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    90
    A common example is the primitive pragma:
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    91
        <primitive: 123 errorCode: 'errorCode'>
14447
20f864eaec94 comment/format in: #documentation
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
    92
    but you can add your own and use them as metadata attached to a method.  
20f864eaec94 comment/format in: #documentation
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
    93
    Because pragmas are messages one can browse senders and implementors and perform them.  
20f864eaec94 comment/format in: #documentation
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
    94
    One can query a method for its pragmas by sending it the pragmas message, which answers an Array of instances of me, 
14430
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    95
    one for each pragma in the method.
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    96
    I can provide information about the defining class, method, its selector, 
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    97
    as well as the information about the pragma keyword and its arguments. See the two 'accessing' protocols for details. 
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    98
    'accessing-method' provides information about the method the pragma is found in, 
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
    99
    while 'accessing-pragma' is about the pragma itself.
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
   100
    Instances are retrieved using one of the pragma search methods of the 'finding' protocol on the class side.
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
   101
    To browse all methods with pragmas in the system evaluate
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
   102
        SystemNavigation default browseAllSelect: [:m| m pragmas notEmpty] 
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
   103
        in ST/X: Smalltalk browseAllSelect: [:m| m pragmas notEmpty]
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
   104
    and to browse all nonprimitive methods with pragmas evaluate
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
   105
        SystemNavigation default browseAllSelect: [:m| m primitive isZero and: [m pragmas notEmpty]]
5ddf9b1dd940 class definition
Claus Gittinger <cg@exept.de>
parents: 14262
diff changeset
   106
"
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   107
! !
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
!Annotation class methodsFor:'initialization'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   110
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   111
initialize
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   112
    "Invoked at system start or when the class is dynamically loaded."
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   113
13670
ef1e6435c43d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
   114
    Smalltalk at:#Pragma put:self.
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   115
13670
ef1e6435c43d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
   116
    "Modified: / 09-09-2011 / 07:16:26 / cg"
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   117
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   118
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   119
!Annotation class methodsFor:'instance creation'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   120
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   121
for: aMethod selector: aSelector arguments: anArray
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   122
	^self new
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   123
		setMethod: aMethod;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   124
		setKeyword: aSelector;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   125
		setArguments: anArray;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   126
		yourself
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   127
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   128
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   129
key: key arguments: arguments
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   130
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   131
    ^(self respondsTo: key)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   132
        ifTrue:
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   133
            [self 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   134
                perform: key 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   135
                withArguments: arguments]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   136
        ifFalse:
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   137
            [Annotation::Unknown new 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   138
                key: key 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   139
                arguments: arguments]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   140
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   141
    "Created: / 19-05-2010 / 16:47:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   142
    "Modified: / 02-07-2010 / 16:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   143
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   144
13625
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   145
method:method key:key arguments:arguments
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   146
13663
5e08299c39f1 changed: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13625
diff changeset
   147
    ^
5e08299c39f1 changed: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13625
diff changeset
   148
    "/ cg: do not react on all those methods inherited from Object (such as inline:)
5e08299c39f1 changed: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13625
diff changeset
   149
    "/ self respondsTo: key)
5e08299c39f1 changed: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13625
diff changeset
   150
    (self class includesSelector:key) 
13625
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   151
        ifTrue:
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   152
            [self 
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   153
                perform: key 
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   154
                withArguments: arguments]
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   155
        ifFalse:
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   156
            [Annotation::Unknown new
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   157
                method: method
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   158
                key: key 
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   159
                arguments: arguments]
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   160
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   161
    "Created: / 19-05-2010 / 16:47:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   162
    "Modified: / 02-07-2010 / 16:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   163
    "Created: / 05-09-2011 / 04:39:17 / cg"
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   164
!
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   165
14262
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   166
nameSpace: aString
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   167
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   168
    ^Annotation::NameSpace new nameSpaceName: aString
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   169
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   170
    "Created: / 19-05-2010 / 16:01:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   171
    "Created: / 26-07-2012 / 23:05:28 / cg"
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   172
!
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   173
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   174
namespace: aString
14262
221c880722b0 added: #nameSpace:
Claus Gittinger <cg@exept.de>
parents: 14254
diff changeset
   175
    <resource: #obsolete>
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   176
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   177
    ^Annotation::NameSpace new nameSpaceName: aString
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   178
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   179
    "Created: / 19-05-2010 / 16:01:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   180
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   181
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   182
resource: type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   183
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   184
    ^Annotation::Resource new type: type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   185
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   186
    "Created: / 16-07-2010 / 11:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   187
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   188
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   189
resource: type value: value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   190
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   191
    ^Annotation::Resource new 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   192
        type: type;
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   193
        value: value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   194
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   195
    "Created: / 16-07-2010 / 11:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   196
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   197
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   198
!Annotation class methodsFor:'finding'!
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
allNamed: aSymbol from: aSubClass to: aSuperClass
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   201
	"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
   202
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   203
	^ Array streamContents: [ :stream |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   204
		aSubClass withAllSuperclassesDo: [ :class |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   205
			self withPragmasIn: class do:  [ :pragma |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   206
				pragma keyword = aSymbol
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   207
					ifTrue: [ stream nextPut: pragma ] ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   208
			aSuperClass = class
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   209
				ifTrue: [ ^ stream contents ] ] ].
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
allNamed: aSymbol from: aSubClass to: aSuperClass sortedByArgument: anInteger
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   213
	"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
   214
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   215
	^ 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
   216
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   217
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   218
allNamed: aSymbol from: aSubClass to: aSuperClass sortedUsing: aSortBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   219
	"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
   220
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   221
	^ (self allNamed: aSymbol from: aSubClass to: aSuperClass) sort: aSortBlock.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   222
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   223
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   224
allNamed: aSymbol in: aClass
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   225
	"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
   226
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   227
	^ Array streamContents: [ :stream |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   228
		self withPragmasIn: aClass do: [ :pragma |
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   229
			pragma keyword = aSymbol
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   230
				ifTrue: [ stream nextPut: pragma ] ] ].
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   231
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   232
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   233
allNamed: aSymbol in: aClass sortedByArgument: anInteger
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   234
	"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
   235
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   236
	^ 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
   237
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   238
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   239
allNamed: aSymbol in: aClass sortedUsing: aSortBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   240
	"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
   241
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   242
	^ (self allNamed: aSymbol in: aClass) sort: aSortBlock.
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
!Annotation class methodsFor:'private'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   246
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   247
keyword: aSymbol arguments: anArray
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   248
	^ self new
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   249
		setKeyword: aSymbol;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   250
		setArguments: anArray;
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   251
		yourself.
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
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   254
withPragmasIn: aClass do: aBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   255
        aClass selectorsAndMethodsDo: [ :selector :method | method annotationsDo: aBlock ].
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
    "Modified: / 20-08-2011 / 21:31:49 / cg"
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
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   260
!Annotation methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   261
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   262
first
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   263
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   264
    ^self key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   265
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   266
    "Created: / 10-07-2010 / 21:38:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   267
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   268
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   269
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   270
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   271
    ^self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   272
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   273
    "Created: / 19-05-2010 / 16:23:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   274
    "Modified: / 16-07-2010 / 11:29:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   275
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   276
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   277
!Annotation methodsFor:'accessing-method'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   278
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   279
method
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   280
        "Answer the compiled-method containing the pragma."
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 halt:'inimplemented'
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:44:37 / 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
methodClass
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   288
        "Answer the class of the method containing the 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
        ^ self method methodClass
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
    "Modified: / 21-08-2011 / 12:44:47 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   293
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   294
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   295
selector
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   296
        "Answer the selector of the method containing the pragma.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   297
         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
   298
        
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   299
        ^ self method selector
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
    "Modified: / 21-08-2011 / 12:45:20 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   302
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   303
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   304
!Annotation methodsFor:'accessing-pragma'!
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
argumentAt: anInteger
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   307
	"Answer one of the arguments of the pragma."
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
	^ self arguments at: anInteger.
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
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   312
arguments
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   313
        "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
   314
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   315
    self subclassResponsibility
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
    "Modified: / 21-08-2011 / 12:43:54 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   318
!
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
message
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   321
	"Answer the message of the receiving pragma."
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
	^ Message selector: self keyword arguments: self arguments. 
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   324
!
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
numArgs
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   327
	"Answer the number of arguments in the pragma."
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
	^ self arguments size.
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   330
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   331
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   332
!Annotation methodsFor:'comparing'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   333
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   334
analogousCodeTo: anObject 
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   335
        ^self class == anObject class
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   336
          and: [self keyword == anObject keyword
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   337
          and: [self arguments = anObject arguments]]
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
    "Modified: / 21-08-2011 / 12:45:37 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   340
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   341
13625
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   342
!Annotation methodsFor:'compatibility - squeak'!
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   343
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   344
keyword
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   345
    ^ self key
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   346
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   347
    "Created: / 05-09-2011 / 04:34:26 / cg"
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   348
! !
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   349
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   350
!Annotation methodsFor:'initialization'!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   351
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   352
setArguments: anArray
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   353
    self subclassResponsibility
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   354
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   355
    "Modified: / 21-08-2011 / 12:45:51 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   356
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   357
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   358
setKeyword: aSymbol
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   359
        self subclassResponsibility
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   360
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   361
    "Modified: / 21-08-2011 / 12:46:06 / cg"
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
setMethod: aCompiledMethod
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   365
        self subclassResponsibility
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
    "Modified: / 21-08-2011 / 12:46:16 / cg"
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
!Annotation methodsFor:'printing'!
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   371
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   372
printOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   373
    "append a printed representation if the receiver to the argument, aStream"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   374
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   375
    self storeOn:aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   376
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   377
    "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
   378
! !
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   379
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   380
!Annotation methodsFor:'printing & storing'!
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   381
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   382
storeOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   383
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   384
    self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   385
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   386
    "Created: / 19-05-2010 / 16:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   387
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   388
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   389
!Annotation methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   390
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   391
annotatesClass: aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   392
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   393
    ^self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   394
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   395
    "Created: / 20-05-2010 / 11:15:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
annotatesMethod: aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   399
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   400
    ^self subclassResponsibility
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   401
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   402
    "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
   403
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   404
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   405
sendTo: anObject
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   406
	"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
   407
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   408
	^ anObject perform: self keyword withArguments: self arguments
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   409
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   410
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   411
withArgumentsDo: aBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   412
	"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
   413
	
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   414
	^ aBlock valueWithArguments: self arguments
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   415
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   416
14254
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   417
!Annotation methodsFor:'queries'!
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   418
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   419
refersToLiteral: anObject
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   420
    (anObject == self key) ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   421
    ^ false
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   422
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   423
    "Created: / 26-07-2012 / 15:58:34 / cg"
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   424
! !
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   425
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   426
!Annotation methodsFor:'testing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   427
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   428
hasLiteral: aLiteral
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   429
        ^self keyword == aLiteral 
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   430
           or: [self arguments hasLiteral: aLiteral]
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   431
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   432
    "Modified: / 21-08-2011 / 12:46:44 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   433
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   434
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   435
hasLiteralSuchThat: aBlock
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   436
        "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
   437
         This method is only intended for private use by CompiledMethod hasLiteralSuchThat:"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   438
        ^(aBlock value: self keyword)
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   439
           or: [self arguments hasLiteralSuchThat: aBlock]
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   440
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   441
    "Modified: / 21-08-2011 / 12:46:31 / cg"
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   442
!
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   443
14212
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   444
isResource
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   445
    ^ false
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   446
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   447
    "Created: / 18-07-2012 / 19:28:39 / cg"
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   448
!
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   449
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   450
isUnknown
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   451
    ^ false
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   452
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   453
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   454
!Annotation::NameSpace methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   455
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   456
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   457
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   458
    ^#namespace:
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   459
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   460
    "Created: / 19-05-2010 / 16:23:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   461
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   462
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   463
nameSpace
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   464
    ^ nameSpace
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   465
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   466
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   467
nameSpace:something
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   468
    nameSpace := something.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   469
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   470
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   471
!Annotation::NameSpace methodsFor:'initialization'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   472
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   473
nameSpaceName: aString
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   474
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   475
    self nameSpace: (NameSpace name: aString)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   476
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   477
    "Created: / 19-05-2010 / 16:02:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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::NameSpace 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
    "superclass Annotation says that I am responsible to implement this method"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   484
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   485
    aStream nextPutAll: '(Annotation namespace: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   486
    nameSpace name storeOn: aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   487
    aStream nextPut:$)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   488
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   489
    "Modified: / 19-05-2010 / 16:27:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   490
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   491
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   492
!Annotation::NameSpace methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   493
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   494
annotatesClass:aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   495
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   496
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   497
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   498
    "Modified: / 20-05-2010 / 11:16:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   499
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   500
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   501
annotatesMethod:aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   502
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   503
    aMethod lookupObject: NamespaceAwareLookup instance
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   504
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   505
    "Modified: / 20-05-2010 / 11:18:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   506
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   507
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   508
!Annotation::Resource methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   509
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   510
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   511
    "superclass Annotation says that I am responsible to implement this method"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   512
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   513
    ^value 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   514
        ifNil:[#resource:]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   515
        ifNotNil:[#resource:value:]
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   516
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   517
    "Modified: / 16-07-2010 / 11:30:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   521
    ^ type
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   522
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   523
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   524
type:something
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   525
    type := something.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   526
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   527
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   528
value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   529
    ^ value
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   530
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   531
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   532
value:something
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   533
    value := something.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   534
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   535
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   536
!Annotation::Resource methodsFor:'printing & storing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   537
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   538
storeOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   539
    aStream nextPutAll: '(Annotation resource: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   540
    type storeOn: aStream.
14254
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   541
    value notNil ifTrue: [
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   542
        aStream nextPutAll: ' value: '.
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   543
        value storeOn: aStream
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   544
    ].    
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   545
    aStream nextPut:$)
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   546
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   547
    "Modified: / 16-07-2010 / 11:36:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13837
Claus Gittinger <cg@exept.de>
parents: 13670
diff changeset
   548
    "Modified: / 29-11-2011 / 11:19:06 / cg"
14254
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   549
    "Modified (format): / 26-07-2012 / 15:59:14 / cg"
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   550
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   551
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   552
!Annotation::Resource methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   553
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   554
annotatesClass:aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   555
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   556
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   557
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   558
    "Modified: / 16-07-2010 / 11:28:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   559
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   560
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   561
annotatesMethod:aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   562
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   563
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   564
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   565
    "Modified: / 16-07-2010 / 11:28:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   566
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   567
14254
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   568
!Annotation::Resource methodsFor:'queries'!
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   569
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   570
refersToLiteral: anObject
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   571
    (anObject == type) ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   572
    (anObject == value) ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   573
    value isArray ifTrue:[ ^ value refersToLiteral: anObject].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   574
    ^ false
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   575
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   576
    "Created: / 26-07-2012 / 15:57:58 / cg"
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   577
!
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   578
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   579
refersToLiteralMatching: aMatchString
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   580
    (type isSymbol and:[aMatchString match:type])ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   581
    (value isSymbol and:[aMatchString match:value])ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   582
    value isArray ifTrue:[ ^ value refersToLiteralMatching: aMatchString].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   583
    ^ false
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   584
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   585
    "Created: / 26-07-2012 / 16:01:26 / cg"
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   586
! !
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   587
14212
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   588
!Annotation::Resource methodsFor:'testing'!
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   589
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   590
isResource
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   591
    ^ true
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   592
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   593
    "Created: / 18-07-2012 / 19:28:46 / cg"
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   594
! !
eab11c5a1330 added: #isResource
Claus Gittinger <cg@exept.de>
parents: 13837
diff changeset
   595
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   596
!Annotation::Unknown methodsFor:'accessing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   597
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   598
arguments
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   599
    ^ arguments
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   600
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   601
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   602
key
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   603
    ^ key
13625
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   604
!
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   605
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   606
method
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   607
    ^ method
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   608
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   609
    "Created: / 05-09-2011 / 04:38:33 / cg"
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   610
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   611
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   612
!Annotation::Unknown methodsFor:'initialization'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   613
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   614
key:keyArg arguments:argumentsArg 
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   615
    key := keyArg.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   616
    arguments := argumentsArg.
13625
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   617
!
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   618
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   619
method:methodArg key:keyArg arguments:argumentsArg
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   620
    method := methodArg.
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   621
    key := keyArg.
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   622
    arguments := argumentsArg.
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   623
fffe5dbb451b added: #method:key:arguments:
Claus Gittinger <cg@exept.de>
parents: 13613
diff changeset
   624
    "Created: / 05-09-2011 / 04:39:50 / cg"
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   625
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   626
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   627
!Annotation::Unknown methodsFor:'printing & storing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   628
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   629
storeOn:aStream
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   630
    "superclass Annotation says that I am responsible to implement this method"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   631
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   632
    aStream nextPutAll: '(Annotation key: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   633
    key storeOn: aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   634
    aStream nextPutAll: ' arguments: '.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   635
    arguments storeOn: aStream.
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   636
    aStream nextPut: $).
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   637
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   638
    "Modified: / 19-05-2010 / 16:46:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   639
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   640
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   641
!Annotation::Unknown methodsFor:'processing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   642
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   643
annotatesClass:aClass
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   644
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   645
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   646
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   647
    "Modified: / 20-05-2010 / 11:15:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   648
!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   649
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   650
annotatesMethod:aMethod
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   651
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   652
    "Nothing to do"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   653
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   654
    "Modified: / 20-05-2010 / 11:15:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   655
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   656
14254
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   657
!Annotation::Unknown methodsFor:'queries'!
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   658
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   659
refersToLiteral: anObject
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   660
    (anObject == method) ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   661
    (anObject == key) ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   662
    (anObject == arguments) ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   663
    arguments isArray ifTrue:[ ^ arguments refersToLiteral: anObject].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   664
    ^ false
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   665
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   666
    "Created: / 26-07-2012 / 15:57:43 / cg"
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   667
!
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   668
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   669
refersToLiteralMatching: aMatchString
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   670
    (method isSymbol and:[aMatchString match:method])ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   671
    (key isSymbol and:[aMatchString match:key])ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   672
    (arguments isSymbol and:[aMatchString match:arguments])ifTrue:[ ^ true ].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   673
    arguments isArray ifTrue:[ ^ arguments refersToLiteralMatching: aMatchString].
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   674
    ^ false
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   675
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   676
    "Created: / 26-07-2012 / 16:00:58 / cg"
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   677
! !
d4aab2fd49db fixed: #refersToLiteral:
Claus Gittinger <cg@exept.de>
parents: 14212
diff changeset
   678
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   679
!Annotation::Unknown methodsFor:'testing'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   680
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   681
isUnknown
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   682
    ^ true
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   683
! !
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   684
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   685
!Annotation class methodsFor:'documentation'!
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   686
13670
ef1e6435c43d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
   687
version
14447
20f864eaec94 comment/format in: #documentation
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
   688
    ^ '$Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.12 2012-10-29 10:25:12 cg Exp $'
13670
ef1e6435c43d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
   689
!
ef1e6435c43d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
   690
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   691
version_CVS
14447
20f864eaec94 comment/format in: #documentation
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
   692
    ^ '$Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.12 2012-10-29 10:25:12 cg Exp $'
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   693
!
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   694
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   695
version_SVN
13479
d2d9938cf03f changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 13403
diff changeset
   696
    ^ '§Id: Annotation.st,v 1.1 2011/06/28 11:04:04 vrany Exp §'
13403
9cdd42752750 added AmbiguousMessage, Annotation, NamespaceAwareLookup
vrany
parents:
diff changeset
   697
! !
13613
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   698
f3c2a2ac07a1 Pragma (squeak compatibility)
Claus Gittinger <cg@exept.de>
parents: 13479
diff changeset
   699
Annotation initialize!