JavaDecompiler.st
changeset 187 89fec395f511
parent 175 68da52e100ab
child 190 9558f26c7a97
--- a/JavaDecompiler.st	Fri Aug 01 07:45:22 1997 +0000
+++ b/JavaDecompiler.st	Fri Aug 01 09:50:27 1997 +0000
@@ -318,7 +318,13 @@
 
 definitionOf:aJavaClass on:s
     |pckgName needCR fields staticFields superClass
-     interfaces|
+     interfaces
+     accessAttributeStyle codeStyle classNameStyle methodNameStyle|
+
+    accessAttributeStyle := Java prettyPrintStyle at:#accessAttribute.
+    codeStyle := Java prettyPrintStyle at:#code.
+    classNameStyle := Java prettyPrintStyle at:#className.
+    methodNameStyle := Java prettyPrintStyle at:#className.
 
     pckgName := aJavaClass package.
     pckgName ~= aJavaClass name ifTrue:[
@@ -327,6 +333,8 @@
     ].
 
     needCR := false.
+    s emphasis:accessAttributeStyle.
+
     aJavaClass isPublic ifTrue:[
        s nextPutAll:'public '.
        needCR := true.
@@ -339,6 +347,7 @@
        s nextPutAll:'final '.
        needCR := true.
     ].
+    s emphasis:codeStyle.
 
     needCR ifTrue:[
         s cr
@@ -348,17 +357,23 @@
     ] ifFalse:[
        s nextPutAll:'class '.
     ].
-    s nextPutAll:aJavaClass name; space.
+    s emphasis:classNameStyle; 
+      nextPutAll:aJavaClass name; 
+      emphasis:codeStyle; 
+      space.
     superClass := aJavaClass superclass.
 
     superClass ~~ (Java at:'java.lang.Object') ifTrue:[
         s nextPutAll:'extends '.
+        s emphasis:classNameStyle.
         (superClass package ~= 'java/lang' 
         and:[superClass package ~= pckgName]) ifTrue:[
-            s nextPutAll:(superClass displayString); space
+            s nextPutAll:(superClass displayString). 
         ] ifFalse:[
-            s nextPutAll:(superClass name); space
-        ]
+            s nextPutAll:(superClass name).
+        ].
+        s emphasis:codeStyle.
+        s space.
     ].
 
     (interfaces := aJavaClass interfaces) size > 0 ifTrue:[
@@ -372,12 +387,14 @@
             nr ~~ 1 ifTrue:[
                 s nextPutAll:', '.
             ].
+            s emphasis:classNameStyle.
             (if package ~= 'java/lang' 
             and:[if package ~= pckgName]) ifTrue:[
                 s nextPutAll:(if displayString)
             ] ifFalse:[
                 s nextPutAll:(if name)
-            ]
+            ].
+            s emphasis:codeStyle.
         ].
         s space.
     ].
@@ -393,6 +410,7 @@
             |type v|
 
             s nextPutAll:'    '.
+            s emphasis:accessAttributeStyle.
             aField isPublic ifTrue:[
                 s nextPutAll:'public '.
             ] ifFalse:[
@@ -402,6 +420,7 @@
             aField isFinal ifTrue:[
                 s nextPutAll:'final '.
             ].
+            s emphasis:codeStyle.
 
             ((type := aField type) startsWith:pckgName) ifTrue:[
                 type := type copyFrom:(pckgName size + 1 + 1).
@@ -435,6 +454,7 @@
             |type|
 
             s nextPutAll:'    '.
+            s emphasis:accessAttributeStyle.
             aField isPublic ifTrue:[
                 s nextPutAll:'public '.
             ] ifFalse:[
@@ -443,6 +463,7 @@
             aField isFinal ifTrue:[
                 s nextPutAll:'final '.
             ].
+            s emphasis:codeStyle.
 
             ((type := aField type) startsWith:pckgName) ifTrue:[
                 type := type copyFrom:(pckgName size + 1 + 1).
@@ -460,9 +481,10 @@
         needCR := true.
 
         aJavaClass methodDictionary do:[:aMethod |
-            |type nm|
+            |type nm specComponents|
 
             s nextPutAll:'    '.
+            s emphasis:accessAttributeStyle.
             aMethod isPublic ifTrue:[
                 s nextPutAll:'public '.
             ] ifFalse:[
@@ -484,11 +506,24 @@
             aMethod isSynchronized ifTrue:[
                 s nextPutAll:'synchronized '.
             ].
+            s emphasis:codeStyle.
 
             (nm := aMethod name) = '<init>' ifTrue:[
                 nm := aMethod javaClass name.
             ].
-            s nextPutAll:(aMethod signatureNameFor:nm withArgsIn:aMethod javaClass package).
+            specComponents := JavaMethod
+                                  specComponentsWithArgsFromSignature:(aMethod signature)
+                                  withName:nm 
+                                  in:(aMethod javaClass package).
+
+            s nextPutAll:(specComponents at:1).
+            s space.
+            s emphasis:methodNameStyle.
+            s nextPutAll:(specComponents at:2).
+            s emphasis:codeStyle.
+            s nextPutAll:' ('.
+            s nextPutAll:(specComponents at:3).
+            s nextPutAll:')'.
 
             aMethod exceptionTable size > 0 ifTrue:[
                 s nextPutAll:' throws '.
@@ -518,7 +553,7 @@
     s nextPutAll:'}'; cr.
 
     "Created: 22.3.1997 / 14:29:37 / cg"
-    "Modified: 30.7.1997 / 15:27:53 / cg"
+    "Modified: 1.8.1997 / 11:06:24 / cg"
 ! !
 
 !JavaDecompiler class methodsFor:'decompiling'!
@@ -831,6 +866,6 @@
 !JavaDecompiler class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaDecompiler.st,v 1.26 1997/07/30 14:40:09 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaDecompiler.st,v 1.27 1997/08/01 09:50:27 cg Exp $'
 ! !
 JavaDecompiler initialize!