MCOrganizationDefinition.st
author Claus Gittinger <cg@exept.de>
Sat, 20 Aug 2011 14:04:10 +0200
changeset 283 e574a3253353
parent 196 462614958ae1
child 659 0d63d0634a8d
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCDefinition subclass:#MCOrganizationDefinition
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'categories'
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Monticello-Modeling'
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCOrganizationDefinition class methodsFor:'as yet unclassified'!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
categories: anArray
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self instanceLike: (self new categories: anArray)
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCOrganizationDefinition methodsFor:'as yet unclassified'!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
= aDefinition
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ (super = aDefinition)
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
		and: [categories = aDefinition categories]
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
accept: aVisitor
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	^ aVisitor visitOrganizationDefinition: self
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
categories
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	^ categories
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    32
categories: aCollection
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    33
        categories := aCollection asArray
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    34
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    35
    "Modified: / 15-09-2010 / 14:16:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
commonPrefix
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	| stream |
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	categories isEmpty ifTrue: [^ ''].
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    42
	stream := String new writeStream.
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	categories first withIndexDo:
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
		[:c :i|
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
		categories do:
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
			[:ea |
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
			(ea at: i ifAbsent: []) = c ifFalse: [^ stream contents]].
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
		stream nextPut: c].
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	^ stream contents
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
description
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	^ Array with: #organization with: self commonPrefix
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
isOrganizationDefinition
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	^ true
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
postloadOver: oldDefinition
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	SystemOrganization categories:
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
		(self
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
			reorderCategories: SystemOrganization categories
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
			original: (oldDefinition ifNil: [#()] ifNotNil: [oldDefinition categories]))
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
reorderCategories: allCategories original: oldCategories
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    68
        | first |
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    69
        ^allCategories
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    70
        "
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    71
        first := allCategories detect: [:ea | categories includes: ea] ifNone: [^ allCategories].
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    72
        ^       ((allCategories copyUpTo: first) copyWithoutAll: oldCategories, categories),
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    73
                categories,
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    74
                ((allCategories copyAfter: first) copyWithoutAll: oldCategories, categories)
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    75
        "
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    76
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    77
    "Modified: / 11-09-2010 / 18:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
sortKey
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
	^ '<organization>'
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
source
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
	^ String streamContents:
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
		[:s |
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
		categories do: [:ea | s nextPutAll: ea] separatedBy: [s cr]]
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
summary
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	^ categories asArray printString
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
! !
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    94
!MCOrganizationDefinition methodsFor:'converting'!
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    95
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    96
asChange
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    97
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    98
    ^OtherChange new
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    99
        mcDefinition: self;
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   100
        source: ('" Organization: %1 "' bindWith: categories printString)
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   101
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   102
    "Created: / 13-10-2010 / 17:20:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   103
    "Modified: / 08-11-2010 / 17:57:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   104
! !
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   105
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
!MCOrganizationDefinition class methodsFor:'documentation'!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
283
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   108
version
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   109
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCOrganizationDefinition.st,v 1.3 2011-08-20 12:04:10 cg Exp $'
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   110
!
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   111
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   112
version_CVS
283
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   113
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCOrganizationDefinition.st,v 1.3 2011-08-20 12:04:10 cg Exp $'
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   114
!
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   115
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   116
version_SVN
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   117
    ^ '§Id: MCOrganizationDefinition.st 24 2010-11-09 14:00:17Z vranyj1 §'
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
! !