MCOrganizationDefinition.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 719 74fa72574acf
child 1095 87f223484bc3
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
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:''
659
0d63d0634a8d category change
Claus Gittinger <cg@exept.de>
parents: 283
diff changeset
     7
	category:'SCM-Monticello-Modeling'
53
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
719
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    17
!MCOrganizationDefinition methodsFor:'accessing'!
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
categories
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ categories
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    23
categories: aCollection
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    24
        categories := aCollection asArray
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    25
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    26
    "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
    27
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
719
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    29
description
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    30
	^ Array with: #organization with: self commonPrefix
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    31
!
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    32
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    33
source
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    34
	^ String streamContents:
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    35
		[:s |
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    36
		categories do: [:ea | s nextPutAll: ea] separatedBy: [s cr]]
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    37
! !
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    38
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    39
!MCOrganizationDefinition methodsFor:'as yet unclassified'!
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    40
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
commonPrefix
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	| stream |
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	categories isEmpty ifTrue: [^ ''].
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    45
	stream := String new writeStream.
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	categories first withIndexDo:
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
		[:c :i|
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
		categories do:
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
			[:ea |
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
			(ea at: i ifAbsent: []) = c ifFalse: [^ stream contents]].
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
		stream nextPut: c].
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	^ stream contents
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
reorderCategories: allCategories original: oldCategories
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    56
        | first |
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    57
        ^allCategories
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    58
        "
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    59
        first := allCategories detect: [:ea | categories includes: ea] ifNone: [^ allCategories].
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    60
        ^       ((allCategories copyUpTo: first) copyWithoutAll: oldCategories, categories),
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    61
                categories,
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    62
                ((allCategories copyAfter: first) copyWithoutAll: oldCategories, categories)
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    63
        "
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    64
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    65
    "Modified: / 11-09-2010 / 18:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
719
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    66
! !
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    67
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    68
!MCOrganizationDefinition methodsFor:'comparing'!
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    69
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    70
= aDefinition
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    71
	^ (super = aDefinition)
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    72
		and: [categories = aDefinition categories]
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
sortKey
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^ '<organization>'
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
! !
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    79
!MCOrganizationDefinition methodsFor:'converting'!
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    80
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    81
asChange
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    82
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    83
    ^OtherChange new
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    84
        mcDefinition: self;
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    85
        source: ('" Organization: %1 "' bindWith: categories printString)
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    86
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    87
    "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
    88
    "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
    89
! !
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
    90
719
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    91
!MCOrganizationDefinition methodsFor:'installing'!
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    92
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    93
postloadOver: oldDefinition
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    94
	SystemOrganization categories:
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    95
		(self
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    96
			reorderCategories: SystemOrganization categories
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    97
			original: (oldDefinition ifNil: [#()] ifNotNil: [oldDefinition categories]))
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    98
! !
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
    99
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   100
!MCOrganizationDefinition methodsFor:'printing'!
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   101
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   102
summary
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   103
	^ categories asArray printString
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   104
! !
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   105
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   106
!MCOrganizationDefinition methodsFor:'testing'!
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   107
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   108
isOrganizationDefinition
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   109
	^ true
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   110
! !
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   111
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   112
!MCOrganizationDefinition methodsFor:'visiting'!
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   113
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   114
accept: aVisitor
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   115
	^ aVisitor visitOrganizationDefinition: self
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   116
! !
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   117
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
!MCOrganizationDefinition class methodsFor:'documentation'!
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
283
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   120
version
719
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   121
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCOrganizationDefinition.st,v 1.5 2013-01-18 13:02:33 cg Exp $'
283
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   122
!
e574a3253353 initial checkin
Claus Gittinger <cg@exept.de>
parents: 196
diff changeset
   123
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   124
version_CVS
719
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   125
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCOrganizationDefinition.st,v 1.5 2013-01-18 13:02:33 cg Exp $'
196
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   126
!
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   127
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   128
version_SVN
462614958ae1 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 53
diff changeset
   129
    ^ '§Id: MCOrganizationDefinition.st 24 2010-11-09 14:00:17Z vranyj1 §'
53
57ddaf43984e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
! !
719
74fa72574acf category changes
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   131