MCOrganizationDefinition.st
author Claus Gittinger <cg@exept.de>
Wed, 22 Nov 2006 14:09:41 +0100
changeset 53 57ddaf43984e
child 196 462614958ae1
permissions -rw-r--r--
initial checkin

"{ Package: 'stx:goodies/monticello' }"

MCDefinition subclass:#MCOrganizationDefinition
	instanceVariableNames:'categories'
	classVariableNames:''
	poolDictionaries:''
	category:'Monticello-Modeling'
!


!MCOrganizationDefinition class methodsFor:'as yet unclassified'!

categories: anArray
	^ self instanceLike: (self new categories: anArray)
! !

!MCOrganizationDefinition methodsFor:'as yet unclassified'!

= aDefinition
	^ (super = aDefinition)
		and: [categories = aDefinition categories]
!

accept: aVisitor
	^ aVisitor visitOrganizationDefinition: self
!

categories
	^ categories
!

categories: anArray
	categories _ anArray
!

commonPrefix
	| stream |
	categories isEmpty ifTrue: [^ ''].
	
	stream _ String new writeStream.
	categories first withIndexDo:
		[:c :i|
		categories do:
			[:ea |
			(ea at: i ifAbsent: []) = c ifFalse: [^ stream contents]].
		stream nextPut: c].
	^ stream contents
!

description
	^ Array with: #organization with: self commonPrefix
!

isOrganizationDefinition
	^ true
!

postloadOver: oldDefinition
	SystemOrganization categories:
		(self
			reorderCategories: SystemOrganization categories
			original: (oldDefinition ifNil: [#()] ifNotNil: [oldDefinition categories]))
!

reorderCategories: allCategories original: oldCategories
	| first |
	first _ allCategories detect: [:ea | categories includes: ea] ifNone: [^ allCategories].
	^ 	((allCategories copyUpTo: first) copyWithoutAll: oldCategories, categories),
		categories,
		((allCategories copyAfter: first) copyWithoutAll: oldCategories, categories)
!

sortKey
	^ '<organization>'
!

source
	^ String streamContents:
		[:s |
		categories do: [:ea | s nextPutAll: ea] separatedBy: [s cr]]
!

summary
	^ categories asArray printString
! !

!MCOrganizationDefinition class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCOrganizationDefinition.st,v 1.1 2006-11-22 13:09:41 cg Exp $'
! !