--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MCSourceCodeManager.st Sat Aug 20 14:28:23 2011 +0200
@@ -0,0 +1,168 @@
+"{ Package: 'stx:goodies/monticello' }"
+
+AbstractSourceCodeManager subclass:#MCSourceCodeManager
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Monticello-St/X support'
+!
+
+
+!MCSourceCodeManager class methodsFor:'* As yet uncategorized *'!
+
+forgetDisabledModules
+
+ "Nothing to do"
+
+ "Created: / 10-06-2011 / 14:11:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+managerTypeName
+
+ ^'Monticello 1.x'
+
+ "Created: / 26-10-2010 / 21:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+savePreferencesOn:aFileStream
+
+ "Nothing to do now..."
+
+ "Created: / 10-06-2011 / 14:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!MCSourceCodeManager class methodsFor:'basic access'!
+
+checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir source:sourceFile logMessage:logMessage force:force
+ "checkin of a class into the source repository.
+ Return true if ok, false if not."
+
+ ^ self shouldImplement
+!
+
+checkoutModule:aModule directory:aPackage andDo:aBlock
+ "check out everything from a package into a temporary directory.
+ Then evaluate aBlock, passing the name of that temp-directory.
+ Afterwards, the tempDir is removed.
+ Return true, if OK, false if any error occurred."
+
+ ^ self shouldImplement
+!
+
+streamForClass:aClass fileName:classFileName revision:revision directory:packageDir module:moduleDir cache:doCache
+ "extract a classes source code and return an open readStream on it.
+ A revision of nil selects the current (in image) revision.
+ The classes source code is extracted using the revision and the sourceCodeInfo,
+ which itself is extracted from the classes packageString."
+
+ ^ self shouldImplement
+! !
+
+!MCSourceCodeManager class methodsFor:'basic administration'!
+
+checkForExistingContainer:fileName inModule:moduleName directory:dirName
+ "check for a container to be present"
+
+ ^ self shouldImplement
+!
+
+checkForExistingModule:moduleName
+ "check for a module directory to be present"
+
+ ^ self shouldImplement
+!
+
+checkForExistingModule:moduleDir directory:packageDir
+ "check for a package directory to be present"
+
+ ^ self shouldImplement
+!
+
+createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
+ "create a new container & check into it an initial version of aClass"
+
+ ^ self shouldImplement
+!
+
+createModule:moduleName
+ "create a new module directory"
+
+ ^ self shouldImplement
+!
+
+createModule:module directory:directory
+ "create a new package directory"
+
+ ^ self shouldImplement
+!
+
+initialRevisionStringFor:aClass inModule:moduleDir directory:packageDir container:fileName
+ "return a string usable as initial revision string"
+
+ ^ self shouldImplement
+!
+
+revisionLogOf:clsOrNil fromRevision:rev1OrNil toRevision:rev2OrNil numberOfRevisions:limitOrNil fileName:classFileName directory:packageDir module:moduleDir
+ "actually do return a revisionLog. The main worker method.
+ This must be implemented by a concrete source-code manager"
+
+ ^ self shouldImplement
+! !
+
+!MCSourceCodeManager class methodsFor:'queries'!
+
+settingsApplicationClass
+ "link to my settings application (needed for the settings dialog"
+
+ ^ MCSettingsApp
+
+ "Modified: / 20-07-2011 / 16:52:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!MCSourceCodeManager class methodsFor:'source code administration'!
+
+getExistingContainersInModule:aModule directory:aPackage
+ "{ Pragma: +optSpace }"
+
+ ^ self shouldImplement
+!
+
+getExistingDirectoriesInModule:aModule
+ "{ Pragma: +optSpace }"
+
+ ^ self shouldImplement
+!
+
+getExistingModules
+ "{ Pragma: +optSpace }"
+
+ ^ self shouldImplement
+!
+
+revisionInfoFromString:aString
+ "{ Pragma: +optSpace }"
+
+ ^ self shouldImplement
+! !
+
+!MCSourceCodeManager class methodsFor:'subclass responsibility'!
+
+reportHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter filterRepository:repositoryFilter filterModules:moduleFilter inTo:aBlock
+ "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
+
+ ^ self shouldImplement
+! !
+
+!MCSourceCodeManager class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSourceCodeManager.st,v 1.1 2011-08-20 12:28:23 cg Exp $'
+!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCSourceCodeManager.st,v 1.1 2011-08-20 12:28:23 cg Exp $'
+!
+
+version_SVN
+ ^ '§Id: MCSourceCodeManager.st 31 2011-07-20 15:52:38Z vranyj1 §'
+! !