MetacelloAbstractConstructor.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 03 Sep 2012 13:10:51 +0000
changeset 3 504152ada1fc
parent 1 9e312de5f694
permissions -rw-r--r--
fixed stc-compilability
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     1
"{ Package: 'stx:goodies/metacello' }"
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     2
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     3
Object subclass:#MetacelloAbstractConstructor
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     4
	instanceVariableNames:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     5
	classVariableNames:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     6
	poolDictionaries:''
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     7
	category:'Metacello-Core-Constructors'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     8
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
     9
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    10
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    11
!MetacelloAbstractConstructor methodsFor:'accessing'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    12
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    13
configurationClass
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    14
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    15
	^self subclassResponsibility
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    16
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    17
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    18
!MetacelloAbstractConstructor methodsFor:'pragma extraction'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    19
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    20
extractAllVersionPragmas
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    21
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    22
	| aDict |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    23
	aDict := Dictionary new.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    24
	self extractPragmas: #version: into: aDict.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    25
	self extractPragmas: #version:imports: into: aDict.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    26
	^aDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    27
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    28
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    29
extractCommonDefaultSymbolicVersionPragmas
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    30
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    31
	| aDict |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    32
	aDict := Dictionary new.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    33
	self extractPragmas: #defaultSymbolicVersion: for: ConfigurationOf into: aDict.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    34
	^aDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    35
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    36
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    37
extractDefaultSymbolicVersionPragmas
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    38
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    39
	| aDict |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    40
	aDict := Dictionary new.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    41
	self extractPragmas: #defaultSymbolicVersion: into: aDict.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    42
	^aDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    43
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    44
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    45
extractSymbolicVersionPragmas
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    46
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    47
	| aDict |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    48
	aDict := Dictionary new.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    49
	self extractPragmas: #symbolicVersion: into: aDict.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    50
	^aDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    51
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    52
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    53
extractVersionImportPragmas
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    54
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    55
	| aDict |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    56
	aDict := Dictionary new.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    57
	self extractPragmas: #version:imports: into: aDict.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    58
	^aDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    59
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    60
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    61
extractVersionPragmas
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    62
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    63
	| aDict |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    64
	aDict := Dictionary new.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    65
	self extractPragmas: #version: into: aDict.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    66
	^aDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    67
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    68
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    69
!MetacelloAbstractConstructor methodsFor:'private'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    70
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    71
extractPragmas: pragmaKeyword for: aClass into: versionDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    72
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    73
	| versionString  pragmas |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    74
	(Pragma 
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    75
		allNamed: pragmaKeyword
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    76
		in: aClass) do: [:pragma |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    77
			versionString := pragma argumentAt: 1.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    78
			pragmas := versionDict 
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    79
				at: versionString 
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    80
				ifAbsent: [ | list |
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    81
					list := OrderedCollection new.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    82
					versionDict at: versionString put: list.
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    83
					list ].
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    84
			pragmas add: pragma ].
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    85
!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    86
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    87
extractPragmas: pragmaKeyword into: versionDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    88
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    89
	^self extractPragmas: pragmaKeyword for: self configurationClass into: versionDict
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    90
! !
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    91
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    92
!MetacelloAbstractConstructor class methodsFor:'documentation'!
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    93
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    94
version_SVN
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    95
    ^ '$Id::                                                                                                                        $'
9e312de5f694 - Initial commit
jv
parents:
diff changeset
    96
! !