- Initial support for fileouting Java extension methods jk_new_structure
authorvranyj1
Tue, 04 Sep 2012 23:16:20 +0000
branchjk_new_structure
changeset 1697 0a9d598a6408
parent 1696 bf6f2a95d6f7
child 1698 d32a2a3dce36
- Initial support for fileouting Java extension methods
src/GroovyCompiler.st
src/JavaClass.st
src/java/extensions/java/lang/Throwable.st
src/libjava.rc
src/stx_libjava.st
--- a/src/GroovyCompiler.st	Tue Sep 04 21:16:50 2012 +0000
+++ b/src/GroovyCompiler.st	Tue Sep 04 23:16:20 2012 +0000
@@ -136,6 +136,17 @@
     ^class.
 
     "Created: / 27-02-2012 / 23:27:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+compile:source in: class notifying: requestor ifFail: block
+
+    requestor class == SourceFileLoader ifTrue:[
+        ^Compiler compile:source in: class notifying: requestor ifFail: block
+    ].
+
+    self error:'Not yet supported'.
+
+    "Created: / 04-09-2012 / 23:56:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GroovyCompiler methodsFor:'error reporting'!
--- a/src/JavaClass.st	Tue Sep 04 21:16:50 2012 +0000
+++ b/src/JavaClass.st	Tue Sep 04 23:16:20 2012 +0000
@@ -1319,6 +1319,45 @@
 
     "Modified: 22.3.1997 / 14:30:28 / cg"
     "Created: 22.3.1997 / 14:35:43 / cg"
+!
+
+fileOutMethod:aMethod on:aStream
+    "file out aMethod onto aStream. Used for example to write individual changeChunks"
+
+    "/ WARNING: will be obsoleted by SmalltalkChunkFileSourceWriter
+
+    |cat source privacy|
+
+    aStream nextPutChunkSeparator.
+    aStream nextPutAll: 'JAVA'.
+    (self name tokensBasedOn: $/) do:[:each|
+        aStream space; nextPutAll: each.        
+    ].
+    (privacy := aMethod privacy) ~~ #public ifTrue:[
+        aStream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
+    ] ifFalse:[
+        aStream nextPutAll:' methodsFor:'.
+    ].
+
+    cat := aMethod category ? ''.
+    aStream nextPutAll:cat asString storeString.
+    aStream nextPutChunkSeparator; cr; cr.
+
+    source := aMethod source.
+    source isNil ifTrue:[
+        FileOutErrorSignal
+            raiseRequestWith:self
+            errorString:(' - no source for method: ' ,
+                         self name , '>>' ,
+                         (self selectorAtMethod:aMethod))
+    ] ifFalse:[
+        aStream nextChunkPut:source.
+    ].
+    aStream space.
+    aStream nextPutChunkSeparator.
+    aStream cr
+
+    "Created: / 05-09-2012 / 00:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaClass methodsFor:'interop support'!
@@ -2564,4 +2603,3 @@
 ! !
 
 JavaClass initialize!
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java/extensions/java/lang/Throwable.st	Tue Sep 04 23:16:20 2012 +0000
@@ -0,0 +1,9 @@
+"{ Package: 'stx:libjava' }"
+
+!
+
+!JAVA java lang Throwable methodsFor:'others'!
+
+isJavaLangThrowable
+    ^true
+! !
--- a/src/libjava.rc	Tue Sep 04 21:16:50 2012 +0000
+++ b/src/libjava.rc	Tue Sep 04 23:16:20 2012 +0000
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libjava.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,2067,2067
+  FILEVERSION     6,2,2072,2072
   PRODUCTVERSION  6,2,3,1
 #if (__BORLANDC__)
   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
     BEGIN
       VALUE "CompanyName", "eXept Software AG\0"
       VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
-      VALUE "FileVersion", "6.2.2067.2067\0"
+      VALUE "FileVersion", "6.2.2072.2072\0"
       VALUE "InternalName", "stx:libjava\0"
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\b          SWING Research Group, Czech Technical University In Prague\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.1\0"
-      VALUE "ProductDate", "Tue, 04 Sep 2012 18:04:35 GMT\0"
+      VALUE "ProductDate", "Tue, 04 Sep 2012 23:15:33 GMT\0"
     END
 
   END
--- a/src/stx_libjava.st	Tue Sep 04 21:16:50 2012 +0000
+++ b/src/stx_libjava.st	Tue Sep 04 23:16:20 2012 +0000
@@ -155,16 +155,16 @@
      exclude individual packages in the #excludedFromPrerequisites method."
 
     ^ #(
-        #'stx:goodies/sunit'    "TestSuite - referenced by stx_libjava class>>testSuite "
-        #'stx:libbasic'    "Lookup - superclass of JavaLookup::Java2Smalltalk "
+        #'stx:goodies/sunit'    "TestCase - superclass of JavaTestCaseProxy "
+        #'stx:libbasic'    "NonPositionableExternalStream - superclass of JavaSocket "
         #'stx:libbasic2'    "BitArray - superclass of extended BooleanArray "
         #'stx:libbasic3'    "MessageTracer - referenced by JavaMethod>>setBreakPoint "
-        #'stx:libcomp'    "MethodNode - referenced by ProxyMethodCompiler>>generate "
+        #'stx:libcomp'    "MessageNode - referenced by ProxyMethodBlockInvocationNode>>generate: "
         #'stx:libhtml'    "URL - referenced by JavaEmbeddedFrameView>>setupAppletFrameIn:initializeJava: "
         #'stx:libtool'    "WorkspaceApplication - referenced by GroovyEvaluator>>evaluate:in:receiver:notifying:logged:ifFail: "
-        #'stx:libview'    "GraphicsMedium - superclass of JavaTopView "
-        #'stx:libview2'    "Plug - referenced by JavaSourceCodeCache>>findMethodLine:inMethods: "
-        #'stx:libwidg'    "EditField - referenced by JavaVM class>>_WTextFieldPeer_create: "
+        #'stx:libview'    "View - superclass of JavaTopView "
+        #'stx:libview2'    "GIFReader - referenced by JavaVM class>>_GifImageDecoder_parseImage: "
+        #'stx:libwidg'    "Button - referenced by JavaVM class>>_WButtonPeer_create: "
         #'stx:libwidg2'    "MenuPanel - referenced by JavaVM class>>processEvent: "
     )
 ! !
@@ -559,6 +559,7 @@
         Class lookupMethodByNameAndType:
         Object getJavaLockWord
         Object getJavaMonitor
+        #'java/lang/Throwable' isJavaLangThrowable
     )
 ! !