"{ Package: 'stx:goodies/monticello' }"
Object subclass:#MCMockDependency
instanceVariableNames:'name children hasResolution'
classVariableNames:''
poolDictionaries:''
category:'Monticello-Mocks'
!
!MCMockDependency class methodsFor:'instance creation'!
fromTree: anArray
^ self new initializeWithTree: anArray
! !
!MCMockDependency methodsFor:'accessing'!
children
^ children collect: [:ea | self class fromTree: ea]
!
initializeWithTree: expr
expr isSymbol
ifTrue: [name _ expr.
children _ Array new.
hasResolution _ true.]
ifFalse: [name _ expr first.
expr second isSymbol
ifTrue: [hasResolution _ false.
children _ Array new]
ifFalse: [hasResolution _ true.
children _ expr second]]
!
name
^ name
! !
!MCMockDependency methodsFor:'comparing'!
= other
^ self name = other name
!
hash
^ self name hash
! !
!MCMockDependency methodsFor:'mocks'!
mockVersionInfo
^ MCVersionInfo
name: self name
id: (self uuidForName: name)
message: ''
date: nil
time: nil
author: ''
ancestors: #()
!
uuidForName: aName
| nm id |
nm := aName asString.
id := '00000000-0000-0000-0000-0000000000'
, (nm size = 1 ifTrue: [nm , '0'] ifFalse: [nm]).
^UUID fromString: id
! !
!MCMockDependency methodsFor:'resolving'!
hasResolution
^ hasResolution
!
resolve
^ self hasResolution
ifTrue: [MCVersion new
setPackage: MCSnapshotResource mockPackage
info: self mockVersionInfo
snapshot: MCSnapshotResource current snapshot
dependencies: self children]
ifFalse: [nil]
! !
!MCMockDependency class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/monticello/MCMockDependency.st,v 1.1 2006-11-22 13:19:27 cg Exp $'
! !