MCDefinition.st
author convert-repo
Thu, 07 Apr 2016 04:05:21 +0000
changeset 1008 c9cdc9559304
parent 617 b4e6425ade69
child 986 d59dea3216cb
child 1025 bf95002ac47f
permissions -rw-r--r--
update tags

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

Object subclass:#MCDefinition
	instanceVariableNames:''
	classVariableNames:'Instances'
	poolDictionaries:''
	category:'SCM-Monticello-Base'
!


!MCDefinition class methodsFor:'as yet unclassified'!

clearInstances

        Instances := nil

    "Modified: / 18-08-2009 / 10:14:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

instanceLike: aDefinition 

    Instances ifNil: [ Instances := WeakIdentitySet new ].
    Instances do:
        [:each|each = aDefinition ifTrue:[^each]].
    Instances add: aDefinition.
    ^aDefinition.

    "Modified: / 18-08-2009 / 10:18:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!MCDefinition methodsFor:'accessing'!

provisions
	^ #()
!

requirements
	^ #()
! !

!MCDefinition methodsFor:'annotations'!

annotations
	^self annotations: Preferences defaultAnnotationRequests
!

annotations: requests
	"Answer a string for an annotation pane, trying to fulfill the annotation requests.
	These might include anything that
		Preferences defaultAnnotationRequests 
	might return. Which includes anything in
		Preferences annotationInfo
	To edit these, use:"
	"Preferences editAnnotations"

	^String streamContents: [ :s | self printAnnotations: requests on: s ].
!

printAnnotations: requests on: aStream
	"Add a string for an annotation pane, trying to fulfill the annotation requests.
	These might include anything that
		Preferences defaultAnnotationRequests 
	might return. Which includes anything in
		Preferences annotationInfo
	To edit these, use:"
	"Preferences editAnnotations"

	aStream nextPutAll: 'not yet implemented'
! !

!MCDefinition methodsFor:'comparing'!

< aMCMethodDefinition

    ^self <= aMCMethodDefinition
        and: [(self = aMCMethodDefinition) not]

    "Created: / 18-08-2009 / 10:25:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

<= other
	^ self sortKey <= other sortKey
!

= aDefinition
	^ self isRevisionOf: aDefinition
!

description
	self subclassResponsibility
!

fullTimeStamp
	^Timestamp current
!

hash
	^ self description hash
!

isRevisionOf: aDefinition
	^ (aDefinition isKindOf: MCDefinition) and: [aDefinition description = self description]
!

isSameRevisionAs: aDefinition
	^ self = aDefinition
!

sortKey
	self subclassResponsibility 
! !

!MCDefinition methodsFor:'converting'!

asChange
    "raise an error: must be redefined in concrete subclass(es)"

    ^ self subclassResponsibility
! !

!MCDefinition methodsFor:'installing'!

load
	
!

loadOver: aDefinition
	self load
	
!

postload
!

postloadOver: aDefinition
	self postload
!

unload
! !

!MCDefinition methodsFor:'printing'!

printOn: aStream
	super printOn: aStream.
	aStream nextPutAll: '(', self summary, ')'
!

summary
	self subclassResponsibility 
! !

!MCDefinition methodsFor:'testing'!

isClassDefinition
	^false
!

isClassDefinitionExtension
	"Answer true if this definition extends the regular class definition"
	^false
!

isMethodDefinition
	^false
!

isOrganizationDefinition
	^false
!

isOverrideDefinition
    ^false

    "Created: / 08-11-2010 / 17:29:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!MCDefinition class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDefinition.st,v 1.5 2012-09-11 21:21:09 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCDefinition.st,v 1.5 2012-09-11 21:21:09 cg Exp $'
!

version_SVN
    ^ '§Id: MCDefinition.st 24 2010-11-09 14:00:17Z vranyj1 §'
! !