add manual package setting to CustomSourceCodeBuilder::Class
authorJakub Nesveda <jakubnesveda@seznam.cz>
Sat, 30 Aug 2014 19:33:55 +0200
changeset 655 94a4d9c58558
parent 654 39e40ece4ae9
child 656 a95284467938
add manual package setting to CustomSourceCodeBuilder::Class
CustomSimpleSetterMethodsCodeGeneratorTests.st
CustomSourceCodeBuilder.st
CustomSourceCodeBuilderTests.st
Make.proto
bc.mak
refactoring_custom.rc
--- a/CustomSimpleSetterMethodsCodeGeneratorTests.st	Fri Aug 29 22:48:21 2014 +0200
+++ b/CustomSimpleSetterMethodsCodeGeneratorTests.st	Sat Aug 30 19:33:55 2014 +0200
@@ -7,6 +7,7 @@
 	category:'Interface-Refactoring-Custom-Tests'
 !
 
+
 !CustomSimpleSetterMethodsCodeGeneratorTests methodsFor:'accessing'!
 
 generatorOrRefactoring
@@ -49,3 +50,10 @@
     "Modified: / 05-07-2014 / 19:38:17 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
+!CustomSimpleSetterMethodsCodeGeneratorTests class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/CustomSourceCodeBuilder.st	Fri Aug 29 22:48:21 2014 +0200
+++ b/CustomSourceCodeBuilder.st	Sat Aug 30 19:33:55 2014 +0200
@@ -17,7 +17,14 @@
 !
 
 CustomSourceCodeBuilder subclass:#Method
-	instanceVariableNames:'classes commentPlaceholderMarker commentReplacements'
+	instanceVariableNames:'classes commentPlaceholderMarker commentReplacements package'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:CustomSourceCodeBuilder
+!
+
+InteractiveAddMethodChange subclass:#MethodChange
+	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:CustomSourceCodeBuilder
@@ -463,6 +470,15 @@
     "Created: / 23-03-2014 / 23:02:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
+!CustomSourceCodeBuilder methodsFor:'refactory-changes'!
+
+methodChange
+
+    ^ CustomSourceCodeBuilder::MethodChange new
+
+    "Created: / 30-08-2014 / 18:27:59 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
 !CustomSourceCodeBuilder::Class methodsFor:'accessing'!
 
 category:something
@@ -764,6 +780,13 @@
     "Created: / 25-05-2014 / 17:41:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 !
 
+package:aPackage
+
+    package := aPackage
+
+    "Created: / 30-08-2014 / 18:32:01 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
 protocol:aString
 
     protocol := aString
@@ -825,14 +848,20 @@
             methodClass := class asRBClass
         ].  
 
-        change addChange: (InteractiveAddMethodChange new
-                                class: methodClass
-                                protocol: protocol
-                                source: self buildedSource)
+        methodChange := (self methodChange
+                            class: methodClass
+                            protocol: protocol
+                            source: self buildedSource).
+
+        package notNil ifTrue: [
+            methodChange package: package
+        ].
+
+        change addChange: methodChange.
     ]
 
     "Created: / 10-04-2014 / 00:03:34 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified (comment): / 18-05-2014 / 19:24:09 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 30-08-2014 / 18:31:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 !
 
 replaceCommentsInSource: aSourceString
@@ -866,6 +895,28 @@
     "Modified: / 24-03-2014 / 22:44:28 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
+!CustomSourceCodeBuilder::MethodChange class methodsFor:'documentation'!
+
+documentation
+"
+    Method change (refacotry browser) wrapper to support additional functionality. 
+    For now its just package accesor.
+
+    [author:]
+        Jakub Nesveda <nesvejak@fit.cvut.cz>
+
+"
+! !
+
+!CustomSourceCodeBuilder::MethodChange methodsFor:'accessing'!
+
+package: aPackage
+
+    package := aPackage
+
+    "Created: / 30-08-2014 / 18:24:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+! !
+
 !CustomSourceCodeBuilder class methodsFor:'documentation'!
 
 version_HG
--- a/CustomSourceCodeBuilderTests.st	Fri Aug 29 22:48:21 2014 +0200
+++ b/CustomSourceCodeBuilderTests.st	Sat Aug 30 19:33:55 2014 +0200
@@ -368,6 +368,49 @@
     "Created: / 23-08-2014 / 21:48:51 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 !
 
+test_create_method_within_given_package
+    | mockClass package method |
+
+    package := self class package.
+    self assert: package size > 3.
+
+    mockClass := codeBuilder createClassImmediate: 'MockClassForTestCase' superClassName: 'Object'.
+    (codeBuilder createMethod)
+        class: mockClass;
+        protocol: 'a protocol';
+        package: package;
+        source: 'selector ^ 123'.
+
+    codeBuilder execute.
+
+    method := (mockClass compiledMethodAt: #selector).
+
+    self assert: method package = package
+
+    "Created: / 30-08-2014 / 18:45:35 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
+test_create_method_without_given_package
+    | mockClass package method |
+
+    package := self class package.
+    self assert: package size > 3.
+
+    mockClass := codeBuilder createClassImmediate: 'MockClassForTestCase' superClassName: 'Object'.
+    (codeBuilder createMethod)
+        class: mockClass;
+        protocol: 'a protocol';
+        source: 'selector ^ 123'.
+
+    codeBuilder execute.
+
+    method := (mockClass compiledMethodAt: #selector).
+
+    self assert: (method package = package) not
+
+    "Created: / 30-08-2014 / 18:46:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+!
+
 test_empty_class_not_in_change
 
     codeBuilder createClass.
--- a/Make.proto	Fri Aug 29 22:48:21 2014 +0200
+++ b/Make.proto	Sat Aug 30 19:33:55 2014 +0200
@@ -144,7 +144,7 @@
 $(OUTDIR)CustomParseTreeRewriter.$(O) CustomParseTreeRewriter.$(H): CustomParseTreeRewriter.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/ParseTreeRewriter.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/ParseTreeSearcher.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CustomPerspective.$(O) CustomPerspective.$(H): CustomPerspective.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CustomRefactoryBuilder.$(O) CustomRefactoryBuilder.$(H): CustomRefactoryBuilder.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/refactoring/RefactoryBuilder.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)CustomSourceCodeBuilder.$(O) CustomSourceCodeBuilder.$(H): CustomSourceCodeBuilder.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGenerator.$(H) $(STCHDR)
+$(OUTDIR)CustomSourceCodeBuilder.$(O) CustomSourceCodeBuilder.$(H): CustomSourceCodeBuilder.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/changes/AddMethodChange.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/changes/InteractiveAddMethodChange.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/changes/RefactoryChange.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/changes/RefactoryClassChange.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/CodeGenerator.$(H) $(STCHDR)
 $(OUTDIR)CustomSourceCodeFormatter.$(O) CustomSourceCodeFormatter.$(H): CustomSourceCodeFormatter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)CustomSourceCodeSelection.$(O) CustomSourceCodeSelection.$(H): CustomSourceCodeSelection.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TestClass.$(O) TestClass.$(H): TestClass.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/bc.mak	Fri Aug 29 22:48:21 2014 +0200
+++ b/bc.mak	Sat Aug 30 19:33:55 2014 +0200
@@ -90,7 +90,7 @@
 $(OUTDIR)CustomParseTreeRewriter.$(O) CustomParseTreeRewriter.$(H): CustomParseTreeRewriter.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\ParseTreeRewriter.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\ParseTreeSearcher.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)CustomPerspective.$(O) CustomPerspective.$(H): CustomPerspective.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)CustomRefactoryBuilder.$(O) CustomRefactoryBuilder.$(H): CustomRefactoryBuilder.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\refactoring\RefactoryBuilder.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)CustomSourceCodeBuilder.$(O) CustomSourceCodeBuilder.$(H): CustomSourceCodeBuilder.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGenerator.$(H) $(STCHDR)
+$(OUTDIR)CustomSourceCodeBuilder.$(O) CustomSourceCodeBuilder.$(H): CustomSourceCodeBuilder.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\changes\AddMethodChange.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\changes\InteractiveAddMethodChange.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\changes\RefactoryChange.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\changes\RefactoryClassChange.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\CodeGenerator.$(H) $(STCHDR)
 $(OUTDIR)CustomSourceCodeFormatter.$(O) CustomSourceCodeFormatter.$(H): CustomSourceCodeFormatter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)CustomSourceCodeSelection.$(O) CustomSourceCodeSelection.$(H): CustomSourceCodeSelection.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TestClass.$(O) TestClass.$(H): TestClass.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/refactoring_custom.rc	Fri Aug 29 22:48:21 2014 +0200
+++ b/refactoring_custom.rc	Sat Aug 30 19:33:55 2014 +0200
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
       VALUE "ProductName", "ProductName\0"
       VALUE "ProductVersion", "6.2.4.1333\0"
-      VALUE "ProductDate", "Fri, 29 Aug 2014 20:45:38 GMT\0"
+      VALUE "ProductDate", "Sat, 30 Aug 2014 17:29:11 GMT\0"
     END
 
   END