MCMockDependency.st
author Claus Gittinger <cg@exept.de>
Mon, 14 May 2018 02:21:18 +0200
changeset 1048 582b3a028cbc
parent 654 8c8cc4a86ee7
child 1095 87f223484bc3
permissions -rw-r--r--
#FEATURE by cg class: MCMethodDefinition changed: #postloadOver:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
100
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
Object subclass:#MCMockDependency
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'name children hasResolution'
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
654
8c8cc4a86ee7 category change
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
     7
	category:'SCM-Monticello-Mocks'
100
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCMockDependency class methodsFor:'instance creation'!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
fromTree: anArray 
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ self new initializeWithTree: anArray
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCMockDependency methodsFor:'accessing'!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
children
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ children collect: [:ea | self class fromTree: ea]
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
initializeWithTree: expr
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	expr isSymbol
246
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    25
		ifTrue: [name := expr.
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    26
				children := Array new.
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    27
				hasResolution := true.]
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    28
		ifFalse: [name := expr first.
100
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
				expr second isSymbol
246
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    30
					ifTrue: [hasResolution := false.
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    31
							children := Array new]
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    32
					ifFalse: [hasResolution := true.
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    33
							children := expr second]]
100
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
name
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	^ name
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
! !
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!MCMockDependency methodsFor:'comparing'!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
= other
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ self name = other name
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
hash
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	^ self name hash
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
! !
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!MCMockDependency methodsFor:'mocks'!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
mockVersionInfo
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
	^ MCVersionInfo
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
		name: self name
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
		id: (self uuidForName: name)
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
		message: ''
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
		date: nil
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
		time: nil
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
		author: ''
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
		ancestors: #()
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
uuidForName: aName 
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	| nm id |
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	nm := aName asString.
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
	id := '00000000-0000-0000-0000-0000000000' 
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
				, (nm size = 1 ifTrue: [nm , '0'] ifFalse: [nm]).
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
	^UUID fromString: id
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
! !
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
!MCMockDependency methodsFor:'resolving'!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
hasResolution
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
	^ hasResolution
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
resolve
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
	^ self hasResolution
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
		ifTrue: [MCVersion new
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
					setPackage: MCSnapshotResource mockPackage
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
					info: self mockVersionInfo
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
					snapshot: MCSnapshotResource current snapshot
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
					dependencies: self children]
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
		ifFalse: [nil]
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
! !
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!MCMockDependency class methodsFor:'documentation'!
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
version
654
8c8cc4a86ee7 category change
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
    90
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMockDependency.st,v 1.4 2012-09-11 21:24:20 cg Exp $'
246
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    91
!
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    92
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    93
version_CVS
654
8c8cc4a86ee7 category change
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
    94
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCMockDependency.st,v 1.4 2012-09-11 21:24:20 cg Exp $'
246
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    95
!
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    96
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    97
version_SVN
190bb2979dad added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 100
diff changeset
    98
    ^ '§Id: MCMockDependency.st 5 2010-08-29 07:30:29Z vranyj1 §'
100
187cf0de502a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
! !