- JavaClass: field lookup improved. jk_new_structure
authorvranyj1
Sun, 22 May 2011 16:04:51 +0000
branchjk_new_structure
changeset 811 2921f70489c1
parent 810 d76324df7e4a
child 812 62e917825364
- JavaClass: field lookup improved. - JavaField: better printString
src/JavaClass.st
src/JavaClassReader.st
src/JavaField.st
--- a/src/JavaClass.st	Sun May 22 13:05:48 2011 +0000
+++ b/src/JavaClass.st	Sun May 22 16:04:51 2011 +0000
@@ -946,40 +946,6 @@
     ^ super browserClass.
 
     "Modified: / 14.10.1998 / 15:28:38 / cg"
-!
-
-compilerClass
-    "return the compiler to use for this class -
-     this can be redefined in special classes, to compile classes with
-     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
-
-    ^ JavaCompiler ? Compiler
-!
-
-evaluatorClass
-    "return the compiler to use for expression evaluation for this class -
-     this can be redefined in special classes, to evaluate expressions with
-     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
-
-    ^ JavaParser ? Parser.
-
-!
-
-parserClass
-    "return the parser to use for parsing this class -
-     this can be redefined in special classes, to parse classes with
-     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
-
-    ^ JavaParser ? Parser.
-
-!
-
-syntaxHighlighterClass
-    "return the class to use for syntaxHighlighting (prettyPrinting) this class -
-     this can be redefined in special classes, to highlight classes with
-     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
-
-    ^ JavaSyntaxHighlighter "/ ? SyntaxHighlighter
 ! !
 
 !JavaClass methodsFor:'compiling'!
@@ -1919,24 +1885,26 @@
 !JavaClass methodsFor:'reflection'!
 
 lookupFieldByNameAndType: aJavaNameAndType 
-    | result |
-
-    result := fields detect: 
+
+    | field cls |
+
+    cls := self. 
+    [ cls ~= JavaObject ] whileTrue: [
+        field := cls fields detect: 
                     [:each | 
-                    (each name = aJavaNameAndType name 
-                        and: [ each signature = aJavaNameAndType descriptor ]) ].
-    self breakPoint: #mh.
-    result ifNotNil: 
-            [
-            ^ result ].
-    self superclass ~= JavaObject 
-        ifTrue: 
-            [^self superclass lookupFieldByNameAndType: aJavaNameAndType.
-            ]
-        ifFalse: [ ^ nil ].
+                    each name = aJavaNameAndType name 
+                        and: [ each signature = aJavaNameAndType descriptor ]]
+                    ifNone:[nil].
+        self breakPoint: #mh.        
+        field ifNotNil:[^field].
+        cls := cls superclass. 
+    ].
+    self breakPoint: #jv. 
+    ^nil
 
     "Created: / 11-04-2011 / 21:27:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Modified: / 18-05-2011 / 13:59:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 22-05-2011 / 16:27:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 lookupMethodByNameAndType: aJavaNameAndType 
--- a/src/JavaClassReader.st	Sun May 22 13:05:48 2011 +0000
+++ b/src/JavaClassReader.st	Sun May 22 16:04:51 2011 +0000
@@ -859,12 +859,14 @@
         ifFalse: 
             [ "/ a java class
             classBeingLoaded := JavaClass fullName: thisClassName numStatic: nStatic.
-                    fields := fields select: [:f | f isStatic not ].
-                    JavaClass setInstanceVariableStringFromFields: staticFields
-                        in: classBeingLoaded class.
- classBeingLoaded setStaticFields: staticFields.
-                    classBeingLoaded initializeStaticFields.
-
+
+            fields := fields select: [:f | f isStatic not ].
+
+            JavaClass setInstanceVariableStringFromFields: staticFields
+                      in: classBeingLoaded class.
+
+            classBeingLoaded setStaticFields: staticFields.
+            classBeingLoaded initializeStaticFields.
             classBeingLoaded setAccessFlags: access_flags.
             classBeingLoaded setSuperclass: super_class.
             classBeingLoaded setConstantPool: constants.
@@ -898,7 +900,7 @@
     "Modified: / 15-10-2010 / 17:37:38 / Jan Kurs <kurs.jan@post.cz>"
     "Modified: / 28-01-2011 / 15:09:48 / Marcel Hlopko <hlopik@gmail.com>"
     "Modified: / 18-05-2011 / 15:30:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
-    "Modified: / 22-05-2011 / 13:50:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 22-05-2011 / 14:23:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 readStream:aStream ignoring:classesBeingLoaded
--- a/src/JavaField.st	Sun May 22 13:05:48 2011 +0000
+++ b/src/JavaField.st	Sun May 22 16:04:51 2011 +0000
@@ -187,10 +187,18 @@
 
 !JavaField methodsFor:'printing & storing'!
 
-displayString
-    ^ self class name , '(name: ' , name displayString , ')'
+printOn: aStream
 
+    super printOn: aStream.
+    aStream 
+        nextPutAll:'(name: ';
+        nextPutAll: name;
+        nextPut:$,; space;
+        nextPutAll:'descriptor: ';
+        nextPutAll: signature;
+        nextPut:$)
 
+    "Created: / 22-05-2011 / 16:07:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaField methodsFor:'private accessing'!