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