--- 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!