MCMerger.st
changeset 45 8a2cc7383a3a
child 224 6e44151e334c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCMerger.st	Wed Nov 22 14:08:20 2006 +0100
@@ -0,0 +1,62 @@
+"{ 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 $'
+! !