MCVersionInfo.st
author Claus Gittinger <cg@exept.de>
Wed, 22 Nov 2006 13:45:19 +0100
changeset 2 af9d766a7b67
child 466 853af85b57c3
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCAncestry subclass:#MCVersionInfo
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'id name message date time author'
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Monticello-Versioning'
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
MCVersionInfo comment:'Adds to the record of ancestry, other identifying details.'
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
!MCVersionInfo class methodsFor:'as yet unclassified'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
name: vName id: id message: message date: date time: time author: author ancestors: ancestors
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	^ self 
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
		name: vName
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
		id: id
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
		message: message
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
		date: date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
		time: time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
		author: author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
		ancestors: ancestors
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
		stepChildren: #()
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
name: vName id: id message: message date: date time: time author: author ancestors: ancestors stepChildren: stepChildren
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	^ self new
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
		initializeWithName: vName
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
		id: id
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
		message: message
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
		date: date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
		time: time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
		author: author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
		ancestors: ancestors
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
		stepChildren: stepChildren
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!MCVersionInfo methodsFor:'accessing'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
message
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ message ifNil: ['']
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
name
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	^ name ifNil: ['<working copy>']
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
summary
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	^ String streamContents:
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
		[:s |
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
		s
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
			nextPutAll: self summaryHeader; cr; cr;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
			nextPutAll: self message.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
		]
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
summaryHeader
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	^ String streamContents:
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
		[:s |
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
		s
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
			nextPutAll: 'Name: '; nextPutAll: self name; cr.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
		date ifNotNil:
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
			[s
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
				nextPutAll: 'Author: '; nextPutAll: author; cr;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
				nextPutAll: 'Time: '; nextPutAll:  date asString, ', ', time asString; cr].
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
		id ifNotNil:
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
			[s nextPutAll: 'UUID: '; nextPutAll: id asString; cr].
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
		s
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
			nextPutAll: 'Ancestors: '; nextPutAll: self ancestorString.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
		self stepChildren isEmpty ifFalse:
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
			[s cr; nextPutAll: 'Backported From: '; nextPutAll: self stepChildrenString].
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
		]
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
timeStamp
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	^ TimeStamp date: date time: time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
timeString
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	^ date asString, ', ', time asString
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
!MCVersionInfo methodsFor:'comparing'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
= other
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	^ other species = self species
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
		and: [other hasID: id]
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
hash
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	^ id hash
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!MCVersionInfo methodsFor:'converting'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
asDictionary
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	^ Dictionary new
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
		at: #name put: name;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
		at: #id put: id;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
		at: #message put: message;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
		at: #date put: date;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
		at: #time put: time;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
		at: #author put: author;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
		at: #ancestors put: (self ancestors collect: [:a | a asDictionary]);
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
		yourself
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
!MCVersionInfo methodsFor:'initialize-release'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
initializeWithName: vName id: aUUID message: aString date: aDate time: aTime author: initials ancestors: aCollection stepChildren: stepCollection
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
	name _ vName.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	id _ aUUID.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
	message _ aString.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
	date _ aDate.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
	time _ aTime.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
	author _ initials.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
	ancestors _  aCollection.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
	stepChildren _ stepCollection
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
!MCVersionInfo methodsFor:'pillaging'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	^ author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
	^ date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
id
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
	^ id 
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
	^ time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
!MCVersionInfo methodsFor:'printing'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
printOn: aStream
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
	super printOn: aStream.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
	aStream nextPut: $(; nextPutAll: self name; nextPut: $)
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
	
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
!MCVersionInfo methodsFor:'private'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
hasID: aUUID
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
	^ id = aUUID
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
!MCVersionInfo class methodsFor:'documentation'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
version
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionInfo.st,v 1.1 2006-11-22 12:45:19 cg Exp $'
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
! !