Annotation.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 22 Aug 2011 11:53:10 +0100
branchjv
changeset 17851 09d75924b034
parent 17781 63650a976621
child 17859 cc167a69671c
permissions -rw-r--r--
Merged with /trunk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
              All Rights Reserved
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 hereby transferred.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
Object subclass:#Annotation
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	instanceVariableNames:''
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	classVariableNames:''
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	poolDictionaries:''
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	category:'Kernel-Extensions'
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
Annotation subclass:#NameSpace
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
	instanceVariableNames:'nameSpace'
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
	classVariableNames:''
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	poolDictionaries:''
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	privateIn:Annotation
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
17781
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
    28
Annotation subclass:#Resource
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
    29
	instanceVariableNames:'type value'
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
    30
	classVariableNames:''
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
    31
	poolDictionaries:''
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
    32
	privateIn:Annotation
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
    33
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
    34
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
Annotation subclass:#Unknown
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
	instanceVariableNames:'key arguments'
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	classVariableNames:''
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
	poolDictionaries:''
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
	privateIn:Annotation
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    42
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:
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    43
	<primitive: 123 errorCode: ''errorCode''>
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    44
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.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    45
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.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    46
Instances are retrieved using one of the pragma search methods of the ''finding'' protocol on the class side.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    47
To browse all methods with pragmas in the system evaluate
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    48
	SystemNavigation default browseAllSelect: [:m| m pragmas notEmpty]
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    49
and to browse all nonprimitive methods with pragmas evaluate
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    50
	SystemNavigation default browseAllSelect: [:m| m primitive isZero and: [m pragmas notEmpty]]'
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    51
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    52
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
!Annotation class methodsFor:'documentation'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
copyright
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
 COPYRIGHT (c) 2006 by eXept Software AG
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
              All Rights Reserved
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
 This software is furnished under a license and may be used
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
 only in accordance with the terms of that license and with the
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
 inclusion of the above copyright notice.   This software may not
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
 be provided or otherwise made available to, or used by, any
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
 other person.  No title to or ownership of the software is
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
 hereby transferred.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    69
!Annotation class methodsFor:'initialization'!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    70
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    71
initialize
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    72
    "Invoked at system start or when the class is dynamically loaded."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    73
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    74
    Pragma := self.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    75
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    76
    "Modified: / 20-08-2011 / 21:21:24 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    77
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    78
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
!Annotation class methodsFor:'instance creation'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    81
for: aMethod selector: aSelector arguments: anArray
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    82
	^self new
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    83
		setMethod: aMethod;
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    84
		setKeyword: aSelector;
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    85
		setArguments: anArray;
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    86
		yourself
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    87
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
    88
17775
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    89
key: key arguments: arguments
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    90
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    91
    ^(self respondsTo: key)
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    92
        ifTrue:
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    93
            [self 
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    94
                perform: key 
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    95
                withArguments: arguments]
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    96
        ifFalse:
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    97
            [Annotation::Unknown new 
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    98
                key: key 
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
    99
                arguments: arguments]
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    "Created: / 19-05-2010 / 16:47:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17775
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   102
    "Modified: / 02-07-2010 / 16:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
namespace: aString
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    ^Annotation::NameSpace new nameSpaceName: aString
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    "Created: / 19-05-2010 / 16:01:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17781
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   110
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   111
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   112
resource: type
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   113
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   114
    ^Annotation::Resource new type: type
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   115
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   116
    "Created: / 16-07-2010 / 11:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   117
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   118
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   119
resource: type value: value
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   120
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   121
    ^Annotation::Resource new 
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   122
        type: type;
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   123
        value: value
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   124
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   125
    "Created: / 16-07-2010 / 11:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   128
!Annotation class methodsFor:'finding'!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   129
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   130
allNamed: aSymbol from: aSubClass to: aSuperClass
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   131
	"Answer a collection of all pragmas found in methods of all classes between aSubClass and aSuperClass (inclusive) whose keyword is aSymbol."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   132
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   133
	^ Array streamContents: [ :stream |
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   134
		aSubClass withAllSuperclassesDo: [ :class |
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   135
			self withPragmasIn: class do:  [ :pragma |
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   136
				pragma keyword = aSymbol
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   137
					ifTrue: [ stream nextPut: pragma ] ].
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   138
			aSuperClass = class
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   139
				ifTrue: [ ^ stream contents ] ] ].
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   140
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   141
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   142
allNamed: aSymbol from: aSubClass to: aSuperClass sortedByArgument: anInteger
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   143
	"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."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   144
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   145
	^ self allNamed: aSymbol from: aSubClass to: aSuperClass sortedUsing: [ :a :b | (a argumentAt: anInteger) < (b argumentAt: anInteger) ].
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   146
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   147
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   148
allNamed: aSymbol from: aSubClass to: aSuperClass sortedUsing: aSortBlock
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   149
	"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."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   150
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   151
	^ (self allNamed: aSymbol from: aSubClass to: aSuperClass) sort: aSortBlock.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   152
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   153
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   154
allNamed: aSymbol in: aClass
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   155
	"Answer a collection of all pragmas found in methods of aClass whose keyword is aSymbol."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   156
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   157
	^ Array streamContents: [ :stream |
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   158
		self withPragmasIn: aClass do: [ :pragma |
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   159
			pragma keyword = aSymbol
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   160
				ifTrue: [ stream nextPut: pragma ] ] ].
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   161
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   162
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   163
allNamed: aSymbol in: aClass sortedByArgument: anInteger
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   164
	"Answer a collection of all pragmas found in methods of aClass whose keyword is aSymbol, sorted according to argument anInteger."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   165
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   166
	^ self allNamed: aSymbol in: aClass sortedUsing: [ :a :b | (a argumentAt: anInteger) < (b argumentAt: anInteger) ].
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   167
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   168
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   169
allNamed: aSymbol in: aClass sortedUsing: aSortBlock
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   170
	"Answer a collection of all pragmas found in methods of aClass whose keyword is aSymbol, sorted according to aSortBlock."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   171
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   172
	^ (self allNamed: aSymbol in: aClass) sort: aSortBlock.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   173
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   174
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   175
!Annotation class methodsFor:'private'!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   176
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   177
keyword: aSymbol arguments: anArray
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   178
	^ self new
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   179
		setKeyword: aSymbol;
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   180
		setArguments: anArray;
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   181
		yourself.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   182
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   183
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   184
withPragmasIn: aClass do: aBlock
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   185
        aClass selectorsAndMethodsDo: [ :selector :method | method annotationsDo: aBlock ].
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   186
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   187
    "Modified: / 20-08-2011 / 21:31:49 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   188
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   189
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
!Annotation methodsFor:'accessing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
17775
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   192
first
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   193
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   194
    ^self key
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   195
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   196
    "Created: / 10-07-2010 / 21:38:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   197
!
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   198
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
key
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
17781
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   201
    ^self subclassResponsibility
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    "Created: / 19-05-2010 / 16:23:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17781
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   204
    "Modified: / 16-07-2010 / 11:29:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   207
!Annotation methodsFor:'accessing-method'!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   208
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   209
method
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   210
        "Answer the compiled-method containing the pragma."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   211
        
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   212
        self halt:'inimplemented'
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   213
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   214
    "Modified: / 21-08-2011 / 12:44:37 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   215
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   216
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   217
methodClass
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   218
        "Answer the class of the method containing the pragma."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   219
        
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   220
        ^ self method methodClass
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   221
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   222
    "Modified: / 21-08-2011 / 12:44:47 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   223
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   224
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   225
selector
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   226
        "Answer the selector of the method containing the pragma.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   227
         Do not confuse this with the selector of the pragma's message pattern."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   228
        
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   229
        ^ self method selector
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   230
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   231
    "Modified: / 21-08-2011 / 12:45:20 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   232
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   233
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   234
!Annotation methodsFor:'accessing-pragma'!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   235
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   236
argumentAt: anInteger
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   237
	"Answer one of the arguments of the pragma."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   238
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   239
	^ self arguments at: anInteger.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   240
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   241
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   242
arguments
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   243
        "Answer the arguments of the receiving pragma. For a pragma defined as <key1: val1 key2: val2> this will answer #(val1 val2)."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   244
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   245
    self subclassResponsibility
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   246
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   247
    "Modified: / 21-08-2011 / 12:43:54 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   248
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   249
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   250
keyword
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   251
        "Answer the keyword of the pragma (the selector of its message pattern).
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   252
         For a pragma defined as <key1: val1 key2: val2> this will answer #key1:key2:."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   253
        
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   254
        self subclassResponsibility
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   255
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   256
    "Modified: / 21-08-2011 / 12:45:07 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   257
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   258
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   259
message
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   260
	"Answer the message of the receiving pragma."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   261
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   262
	^ Message selector: self keyword arguments: self arguments. 
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   263
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   264
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   265
numArgs
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   266
	"Answer the number of arguments in the pragma."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   267
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   268
	^ self arguments size.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   269
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   270
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   271
!Annotation methodsFor:'comparing'!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   272
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   273
analogousCodeTo: anObject 
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   274
        ^self class == anObject class
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   275
          and: [self keyword == anObject keyword
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   276
          and: [self arguments = anObject arguments]]
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   277
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   278
    "Modified: / 21-08-2011 / 12:45:37 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   279
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   280
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   281
!Annotation methodsFor:'initialization'!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   282
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   283
setArguments: anArray
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   284
    self subclassResponsibility
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   285
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   286
    "Modified: / 21-08-2011 / 12:45:51 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   287
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   288
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   289
setKeyword: aSymbol
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   290
        self subclassResponsibility
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   291
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   292
    "Modified: / 21-08-2011 / 12:46:06 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   293
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   294
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   295
setMethod: aCompiledMethod
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   296
        self subclassResponsibility
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   297
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   298
    "Modified: / 21-08-2011 / 12:46:16 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   299
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   300
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   301
!Annotation methodsFor:'printing'!
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
printOn:aStream
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
    "append a printed representation if the receiver to the argument, aStream"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
    self storeOn:aStream.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
    "Modified: / 19-05-2010 / 16:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   309
! !
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   310
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   311
!Annotation methodsFor:'printing & storing'!
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
storeOn:aStream
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
    self subclassResponsibility
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
    "Created: / 19-05-2010 / 16:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
!Annotation methodsFor:'processing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
annotatesClass: aClass
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
    ^self subclassResponsibility
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
    "Created: / 20-05-2010 / 11:15:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
annotatesMethod: aMethod
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
    ^self subclassResponsibility
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
    "Created: / 20-05-2010 / 11:15:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   334
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   335
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   336
sendTo: anObject
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   337
	"Send the pragma keyword together with its arguments to anObject and answer the result."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   338
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   339
	^ anObject perform: self keyword withArguments: self arguments
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   340
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   341
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   342
withArgumentsDo: aBlock
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   343
	"Pass the arguments of the receiving pragma into aBlock and answer the result."
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   344
	
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   345
	^ aBlock valueWithArguments: self arguments
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
17775
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   348
!Annotation methodsFor:'testing'!
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   349
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   350
hasLiteral: aLiteral
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   351
        ^self keyword == aLiteral 
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   352
           or: [self arguments hasLiteral: aLiteral]
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   353
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   354
    "Modified: / 21-08-2011 / 12:46:44 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   355
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   356
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   357
hasLiteralSuchThat: aBlock
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   358
        "Answer true if litBlock returns true for any literal in the receiver, even if embedded in further array structure.
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   359
         This method is only intended for private use by CompiledMethod hasLiteralSuchThat:"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   360
        ^(aBlock value: self keyword)
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   361
           or: [self arguments hasLiteralSuchThat: aBlock]
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   362
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   363
    "Modified: / 21-08-2011 / 12:46:31 / cg"
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   364
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   365
17775
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   366
isUnknown
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   367
    ^ false
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   368
! !
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   369
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
!Annotation::NameSpace methodsFor:'accessing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
key
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
    ^#namespace:
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
    "Created: / 19-05-2010 / 16:23:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
nameSpace
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
    ^ nameSpace
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
nameSpace:something
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
    nameSpace := something.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
!Annotation::NameSpace methodsFor:'initialization'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   389
nameSpaceName: aString
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   390
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   391
    self nameSpace: (NameSpace name: aString)
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   392
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
    "Created: / 19-05-2010 / 16:02:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
!Annotation::NameSpace methodsFor:'printing & storing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   397
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
storeOn:aStream
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
    "superclass Annotation says that I am responsible to implement this method"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   400
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   401
    aStream nextPutAll: '(Annotation namespace: '.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   402
    nameSpace name storeOn: aStream.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   403
    aStream nextPut:$)
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   404
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   405
    "Modified: / 19-05-2010 / 16:27:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   406
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   407
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   408
!Annotation::NameSpace methodsFor:'processing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   409
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   410
annotatesClass:aClass
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   411
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   412
    "Nothing to do"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   413
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   414
    "Modified: / 20-05-2010 / 11:16:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   415
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   416
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   417
annotatesMethod:aMethod
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   418
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   419
    aMethod lookupObject: NamespaceAwareLookup instance
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   420
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   421
    "Modified: / 20-05-2010 / 11:18:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   422
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   423
17781
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   424
!Annotation::Resource methodsFor:'accessing'!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   425
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   426
key
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   427
    "superclass Annotation says that I am responsible to implement this method"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   428
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   429
    ^value 
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   430
        ifNil:[#resource:]
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   431
        ifNotNil:[#resource:value:]
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   432
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   433
    "Modified: / 16-07-2010 / 11:30:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   434
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   435
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   436
type
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   437
    ^ type
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   438
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   439
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   440
type:something
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   441
    type := something.
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   442
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   443
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   444
value
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   445
    ^ value
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   446
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   447
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   448
value:something
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   449
    value := something.
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   450
! !
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   451
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   452
!Annotation::Resource methodsFor:'printing & storing'!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   453
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   454
storeOn:aStream
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   455
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   456
    aStream nextPutAll: '(Annotation resource: '.
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   457
    type storeOn: aStream.
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   458
    value ifNotNil:
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   459
        [aStream nextPutAll: ' value: '.
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   460
        value storeOn: aStream].    
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   461
    aStream nextPut:$)
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   462
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   463
    "Modified: / 16-07-2010 / 11:36:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   464
! !
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   465
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   466
!Annotation::Resource methodsFor:'processing'!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   467
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   468
annotatesClass:aClass
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   469
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   470
    "Nothing to do"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   471
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   472
    "Modified: / 16-07-2010 / 11:28:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   473
!
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   474
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   475
annotatesMethod:aMethod
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   476
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   477
    "Nothing to do"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   478
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   479
    "Modified: / 16-07-2010 / 11:28:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   480
! !
63650a976621 - added resource annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17775
diff changeset
   481
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   482
!Annotation::Unknown methodsFor:'accessing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   483
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   484
arguments
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   485
    ^ arguments
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   486
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   487
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   488
key
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   489
    ^ key
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   490
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   491
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   492
!Annotation::Unknown methodsFor:'initialization'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   493
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   494
key:keyArg arguments:argumentsArg 
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   495
    key := keyArg.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   496
    arguments := argumentsArg.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   497
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   498
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   499
!Annotation::Unknown methodsFor:'printing & storing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   500
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   501
storeOn:aStream
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   502
    "superclass Annotation says that I am responsible to implement this method"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   503
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   504
    aStream nextPutAll: '(Annotation key: '.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   505
    key storeOn: aStream.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   506
    aStream nextPutAll: ' arguments: '.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   507
    arguments storeOn: aStream.
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   508
    aStream nextPut: $).
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   509
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   510
    "Modified: / 19-05-2010 / 16:46:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   511
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   512
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   513
!Annotation::Unknown methodsFor:'processing'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   514
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   515
annotatesClass:aClass
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   516
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   517
    "Nothing to do"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   518
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   519
    "Modified: / 20-05-2010 / 11:15:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   520
!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   521
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   522
annotatesMethod:aMethod
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   523
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   524
    "Nothing to do"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   525
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   526
    "Modified: / 20-05-2010 / 11:15:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   527
! !
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   528
17775
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   529
!Annotation::Unknown methodsFor:'testing'!
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   530
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   531
isUnknown
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   532
    ^ true
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   533
! !
90a5bae0a710 Lazy evaluation of annotations (required for stc compiled code)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17766
diff changeset
   534
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   535
!Annotation class methodsFor:'documentation'!
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   536
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   537
version_CVS
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   538
    ^ '§Header: /cvs/stx/stx/libbasic/Annotation.st,v 1.3 2011/08/21 10:47:20 cg Exp §'
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   539
!
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   540
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   541
version_SVN
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   542
    ^ '$Id: Annotation.st 10675 2011-08-22 10:53:10Z vranyj1 $'
17766
0acf634e6550 initial implementation of selector namespaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   543
! !
17851
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   544
09d75924b034 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17781
diff changeset
   545
Annotation initialize!