MCMerger.st
author Claus Gittinger <cg@exept.de>
Wed, 22 Nov 2006 14:08:20 +0100
changeset 45 8a2cc7383a3a
child 224 6e44151e334c
permissions -rw-r--r--
initial checkin

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

Object subclass:#MCMerger
	instanceVariableNames:'conflicts'
	classVariableNames:''
	poolDictionaries:''
	category:'Monticello-Merging'
!


!MCMerger methodsFor:'as yet unclassified'!

addConflictWithOperation: anOperation
	self conflicts add: (MCConflict operation: anOperation)
!

applyTo: anObject
	self isMerged ifFalse: [self error: 'You must resolve all the conflicts first'].
	conflicts do: [:ea | ea applyTo: anObject]
!

conflicts
	^ conflicts ifNil: [conflicts _ OrderedCollection new]
!

isMerged
	^ self conflicts allSatisfy: [:ea | ea isResolved]
!

load
	| loader |
	loader _ MCPackageLoader new.
	loader provisions addAll: self provisions.
	self applyTo: loader.
	loader load
!

loadWithNameLike: baseName
	| loader |
	loader _ MCPackageLoader new.
	loader provisions addAll: self provisions.
	self applyTo: loader.
	loader loadWithNameLike: baseName
!

mergedSnapshot
	^ MCPatcher apply: self to: self baseSnapshot
!

operations
	^ #()
!

provisions
	^ #()
! !

!MCMerger class methodsFor:'documentation'!

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