extensions.st
changeset 749 e898eaeff091
child 2152 1cbdfbcc685c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extensions.st	Fri Aug 19 08:58:19 2011 +0000
@@ -0,0 +1,872 @@
+"{ Package: 'stx:libjava' }"
+
+!
+
+!BooleanArray methodsFor:'queries'!
+
+isInterface
+
+    ^false
+
+    "Created: / 31-05-2011 / 16:07:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object methodsFor:'testing'!
+
+isJavaArray
+
+    ^self class isJavaArrayClass
+
+    "Created: / 19-12-2010 / 17:05:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object methodsFor:'testing'!
+
+isJavaNameAndType
+    "return true, if given object represents name and type struct in java constant pool"
+    
+    ^ false.
+
+    "Created: / 10-05-2011 / 12:21:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+! !
+!Object methodsFor:'testing'!
+
+isJavaPackage
+    "return true, if this is a java package.
+     false is returned here - the method is only redefined in JavaPackage."
+
+    ^ false
+
+    "Created: / 09-08-2011 / 09:35:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object methodsFor:'testing'!
+
+isJavaRef
+"return true, if given object represents reference in java constant pool"
+^ false.
+
+    "Created: / 08-04-2011 / 16:12:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+! !
+!Object methodsFor:'autoboxing support'!
+
+javaBox: anObject
+
+    ^anObject
+
+    "Created: / 15-08-2011 / 10:52:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object methodsFor:'autoboxing support'!
+
+javaUnbox: anObject
+
+    ^anObject
+
+    "Created: / 15-08-2011 / 10:52:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!String methodsFor:'converting'!
+
+asArrayOfSubstringsSeparatedBy:aSeparator 
+    "Modified version of asArrayOfSubstrings"
+    
+    |substrings start end|
+
+    substrings := OrderedCollection new.
+    start := 1.
+    [start <= self size] whileTrue:[
+        (self at:start) = aSeparator ifFalse:[
+            end := start + 1.
+            [
+                end <= self size and:[(self at:end) ~= aSeparator]
+            ] whileTrue:[end := end + 1].
+            substrings add:(self copyFrom:start to:end - 1).
+            start := end - 1
+        ].
+        start := start + 1
+    ].
+    ^ substrings asArray
+
+    "Created: / 07-02-2011 / 11:18:03 / Marcel Hlopko <hlopik@gmail.com>"
+    "Modified: / 08-02-2011 / 01:08:15 / Marcel Hlopko <hlopik@gmail.com>"
+! !
+!UserPreferences methodsFor:'accessing-java-devel'!
+
+javaTestsDirectory
+    ^ self at: #javaTestsDirectory
+        ifAbsent: 
+            [ | nm |
+
+            nm := OperatingSystem getLoginName.
+             "Default path for Jan"
+            nm = 'jv' 
+                ifTrue: 
+                    [ '/home/jv/Projects/libjava/sources/libjava/branches/jk_new_structure/tests' ]
+                ifFalse: 
+                    [ "Default path for Jan (the other one :-)"
+                    nm = 'jk' 
+                        ifTrue: [ 'path for Jan' ]
+                        ifFalse: 
+                            [ "Default path for Marcel"
+                            nm = 'm' 
+                                ifTrue: [ '/home/m/Projects/libjava/branches/jk_new_structure/tests' ]
+                                ifFalse: 
+                                    [ | "Look into package dir" p |
+
+                                    (p := (Smalltalk getPackageDirectoryForPackage: 'stx:libjava') asFilename 
+                                                / 'tests') exists 
+                                        ifTrue: [ p pathName ]
+                                        ifFalse: 
+                                            [ | "Try the environment variable (used by Hudson)" p |
+
+                                            (p := OperatingSystem getEnvironment: 'LIBJAVA_TESTS') notNil 
+                                                ifTrue: [ p ]
+                                                ifFalse: 
+                                                    [ "No default, trigger an error"
+                                                    self error: 'No tests path specified' ] ] ] ] ] ]
+
+    "
+        UserPreferences current javaTestsDirectory"
+
+    "Created: / 07-05-2011 / 17:43:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-05-2011 / 20:21:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-05-2011 / 15:54:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+! !
+!UserPreferences methodsFor:'accessing-java-devel'!
+
+javaTestsDirectory: aStringOrFilename
+
+    self at:#javaTestsDirectory put: aStringOrFilename asString.
+
+    "Created: / 07-05-2011 / 17:45:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ZipArchive methodsFor:'reading - java support'!
+
+nextBytes: bytesToRead of: zmember startingAt: pos into: b startingAt: off
+
+    file position0Based: zmember fileStart + startOfArchive + pos.
+    ^ file nextBytes: bytesToRead into: b startingAt: off.
+
+    "Created: / 01-05-2011 / 16:21:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Boolean class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    ^true
+
+    "Created: / 25-02-2011 / 08:22:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Boolean class methodsFor:'queries'!
+
+javaArrayClass
+    ^ BooleanArray
+
+    "Created: / 25-02-2011 / 08:27:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Boolean class methodsFor:'autoboxing support'!
+
+javaBox:anObject 
+
+    | wrapper |
+
+    wrapper := (Java classForName: 'java.lang.Boolean') new.
+    wrapper perform: #'<init>(Z)V' with: anObject.
+    ^wrapper
+
+    "Created: / 14-08-2011 / 22:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Boolean class methodsFor:'accessing'!
+
+javaName
+
+    ^'boolean'.
+
+    "Modified: / 25-02-2011 / 18:58:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!BooleanArray class methodsFor:'testing'!
+
+isInterface
+
+    ^false
+! !
+!BooleanArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 20-12-2010 / 22:47:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!BooleanArray class methodsFor:'queries'!
+
+isJavaReferenceType
+
+    "Java arrays are reference types"
+    ^true
+
+    "Created: / 20-12-2010 / 22:30:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!BooleanArray class methodsFor:'accessing-java'!
+
+javaComponentClass
+
+    ^Boolean
+
+    "Created: / 20-12-2010 / 22:13:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!BooleanArray class methodsFor:'accessing'!
+
+javaName
+
+    ^'[X'.
+
+    "Modified: / 25-02-2011 / 19:03:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ByteArray class methodsFor:'testing'!
+
+isInterface
+
+    ^false
+! !
+!ByteArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 05-02-2011 / 22:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ByteArray class methodsFor:'queries'!
+
+isJavaReferenceType
+
+    "Java arrays are reference types"
+    ^true
+
+    "Created: / 20-12-2010 / 22:30:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ByteArray class methodsFor:'accessing-java'!
+
+javaArrayClass
+
+    ^JavaArray javaArrayClassFor: self
+
+    "Created: / 11-06-2011 / 23:42:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ByteArray class methodsFor:'accessing-java'!
+
+javaComponentClass
+
+    ^Byte
+
+    "Created: / 20-12-2010 / 22:05:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ByteArray class methodsFor:'accessing'!
+
+javaName
+
+    ^'[B'.
+
+    "Modified: / 25-02-2011 / 19:02:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Character class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    ^true
+
+    "Created: / 20-12-2010 / 22:18:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Character class methodsFor:'accessing'!
+
+javaArrayClass
+    ^ String
+
+    "Created: / 11-02-2011 / 10:44:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Character class methodsFor:'autoboxing support'!
+
+javaBox:anObject 
+
+| wrapper |
+
+wrapper := (Java classForName: 'java.lang.Character') new.
+wrapper perform: #'<init>(C)V' with: anObject.
+^wrapper
+
+    "Created: / 16-08-2011 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Character class methodsFor:'accessing'!
+
+javaName
+
+    ^'char'.
+
+    "Modified: / 25-02-2011 / 18:58:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!CharacterArray class methodsFor:'encoding & decoding'!
+
+decodeFromJavaUTF8: bytes 
+    "Decodes a string from modified UTF8 encoding
+     as used in Java .class files. see
+     'The class file format specification', section 4.5.7"
+    
+    | string  i  s  b  codePoint  realLength |
+
+    string := String new: bytes size.
+    realLength := bytes size.
+    s := bytes readStream.
+    i := 1.
+    [ s atEnd ] whileFalse: 
+            [ b := s next.
+            (b & 2r10000000) == 0 
+                ifTrue: [ codePoint := b ]
+                ifFalse: 
+                    [ self assert: (b & 2r01000000) = 2r01000000.
+                    (b & 2r00100000) = 0 
+                        ifTrue: 
+                            [ "two byte utf char"
+                            realLength := realLength - 1.
+                            self assert: s size > 0.
+                            self assert: (b & 2r01000000) = 2r01000000.
+                            string bitsPerCharacter = 8 
+                                ifTrue: [ string := Unicode16String fromString: string ].
+                            codePoint := (b & 2r00011111) << 6.
+                            b := s next.
+                            self assert: (b & 2r11000000) = 2r10000000.
+                            codePoint := codePoint + (b & 2r00111111). ]
+                        ifFalse: 
+                            [ "at lease 3 byte utf char"
+                            realLength := realLength - 2.
+                            string bitsPerCharacter ~= 16"was: 32" 
+                                ifTrue: [ string := Unicode16String"was: Unicode32String" fromString: string ].
+                            self assert: s size > 1.
+                            (b & 2r00010000) = 0 
+                                ifTrue: 
+                                    [ | utf32Possible  utf32Value |
+
+                                    "3 or 6 byte utf char"
+                                    self assert: s size > 1.
+                                    s size < 5 
+                                        ifTrue: [ utf32Possible := false ]
+                                        ifFalse: [ utf32Possible := true ].
+                                    b ~= 2r11101101 ifTrue: [ utf32Possible := false ].
+                                    codePoint := (b & 2r00001111) << 12.
+                                    b := s next.
+                                    self assert: (b & 2r11000000) = 2r10000000.
+                                    ((b & 2r11110000) = 2r10100000 and: [ utf32Possible ]) 
+                                        ifTrue: [ utf32Value := 2r00010000 + ((b & 2r00001111) << 16) ]
+                                        ifFalse: [ utf32Possible := false ].
+                                    codePoint := codePoint + ((b & 2r00111111) << 6).
+                                    b := s next.
+                                    self assert: (b & 2r11000000) = 2r10000000.
+                                    utf32Possible 
+                                        ifTrue: [ utf32Value := utf32Value + ((b & 2r00111111) << 10) ].
+                                    codePoint := codePoint + (b & 2r00111111).
+                                    utf32Possible 
+                                        ifTrue: 
+                                            [ | tmpB |
+
+                                            tmpB := s copy.
+                                            b := tmpB next.
+                                            b = 2r11101101 
+                                                ifTrue: 
+                                                    [ b := tmpB next.
+                                                    (b & 2r11110000) = 2r10110000 
+                                                        ifTrue: 
+                                                            [ utf32Value := utf32Value + ((b & 2r00001111) << 6).
+                                                            b := tmpB next.
+                                                            self assert: (b & 2r11000000) = 2r10000000.
+                                                            utf32Value := utf32Value + (b & 2r00111111).
+                                                            codePoint := utf32Value.
+                                                            realLength := realLength - 3. s position: tmpB position.] ] ] ]
+                                ifFalse: 
+                                    [ "should not happen, ask mh"
+                                    self halt. ] ] ].
+            string at: i put: (Character codePoint: codePoint).
+            i := i + 1. ].
+    ^ string subString: 1 to: realLength.
+
+    "
+        String decodeFromJavaUTF8: 'Hello world' asByteArray"
+
+    "Created: / 22-12-2010 / 23:45:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 09-02-2011 / 01:12:25 / Marcel Hlopko <hlopik@gmail.com>"
+    "Modified: / 13-03-2011 / 15:52:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 10-08-2011 / 01:00:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!CharacterArray class methodsFor:'instance creation'!
+
+fromJavaUTF8Bytes:aByteCollection
+    "return a new string which represents the characters as decoded
+     from the modified utf8 encoded bytes as specified in 
+     The class file format specification, section 4.5.7"
+
+    ^ self decodeFromJavaUTF8:aByteCollection.
+
+    "
+     CharacterArray fromUTF8Bytes:#[ 16r41 16r42 ]
+     CharacterArray fromUTF8Bytes:#[ 16rC1 16r02 ]
+     CharacterArray fromUTF8Bytes:#[ 16rE0 16r81 16r02 ]
+     CharacterArray fromUTF8Bytes:#[ 16rEF 16rBF 16rBF ]
+
+   rfc2279 examples:
+     CharacterArray fromUTF8Bytes:#[ 16r41 16rE2 16r89 16rA2 16rCE 16r91 16r2E ]
+     CharacterArray fromUTF8Bytes:#[ 16rED 16r95 16r9C 16rEA 16rB5 16rAD 16rEC 16r96 16rB4 ]
+     CharacterArray fromUTF8Bytes:#[ 16rE6 16r97 16rA5 16rE6 16r9C 16rAC 16rE8 16rAA 16r9E ]
+
+   invalid:
+     CharacterArray fromUTF8Bytes:#[ 16rC0 16r80 ]
+     CharacterArray fromUTF8Bytes:#[ 16rE0 16r80 16r80 ]
+    "
+
+    "Created: / 23-12-2010 / 09:01:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!CharacterArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 05-02-2011 / 22:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!CharacterArray class methodsFor:'accessing-java'!
+
+javaArrayClass
+
+    ^JavaArray javaArrayClassFor: Unicode16String
+
+    "Created: / 11-06-2011 / 23:42:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-08-2011 / 13:18:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!CharacterArray class methodsFor:'accessing-java'!
+
+javaComponentClass
+
+    ^Character
+
+    "Created: / 20-12-2010 / 22:05:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!DoubleArray class methodsFor:'testing'!
+
+isInterface
+
+    ^false
+! !
+!DoubleArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 20-12-2010 / 22:47:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!DoubleArray class methodsFor:'queries'!
+
+isJavaReferenceType
+
+    "Java arrays are reference types"
+    ^true
+
+    "Created: / 20-12-2010 / 22:30:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!DoubleArray class methodsFor:'accessing-java'!
+
+javaComponentClass
+
+    ^Float
+
+    "Created: / 20-12-2010 / 22:06:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!DoubleArray class methodsFor:'accessing'!
+
+javaName
+
+    ^'[D'.
+
+    "Modified: / 25-02-2011 / 19:03:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Float class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    ^true
+
+    "Created: / 06-02-2011 / 17:21:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Float class methodsFor:'accessing'!
+
+javaArrayClass
+    ^ DoubleArray
+
+    "Created: / 11-02-2011 / 10:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Float class methodsFor:'autoboxing support'!
+
+javaBox:anObject 
+
+    | wrapper |
+
+    wrapper := (Java classForName: 'java.lang.Double') new.
+    wrapper perform: #'<init>(D)V' with: anObject.
+    ^wrapper
+
+    "Created: / 16-08-2011 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Float class methodsFor:'accessing'!
+
+javaName
+
+    ^'double'.
+
+    "Modified: / 25-02-2011 / 18:59:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!FloatArray class methodsFor:'testing'!
+
+isInterface
+
+    ^false
+! !
+!FloatArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 20-12-2010 / 22:47:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!FloatArray class methodsFor:'queries'!
+
+isJavaReferenceType
+
+    "Java arrays are reference types"
+    ^true
+
+    "Created: / 20-12-2010 / 22:30:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!FloatArray class methodsFor:'accessing-java'!
+
+javaComponentClass
+
+    ^ShortFloat
+
+    "Created: / 20-12-2010 / 22:06:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!FloatArray class methodsFor:'accessing'!
+
+javaName
+
+    ^'[F'.
+
+    "Modified: / 25-02-2011 / 19:03:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!GenericToolbarIconLibrary class methodsFor:'image specs'!
+
+javaClassBrowserIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self javaClassBrowserIcon inspect
+     ImageEditor openOnClass:self andSelector:#javaClassBrowserIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:'GenericToolbarIconLibrary class javaClassBrowserIcon'
+        ifAbsentPut:[(Depth24Image new) width: 13; height: 11; photometric:(#rgb); bitsPerSample:(#[8 8 8]); samplesPerPixel:(3); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@96<@96<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@96<@96<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@96<@96<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@96<@96<@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@96<@96<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@96<@96<@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@96<@96<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@96<@96<@96<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@96<@96<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') ; mask:((Depth1Image new) width: 13; height: 11; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@\CA0LG@0\CA0LG@0\CA0\GA \@A0@a') ; yourself); yourself]
+! !
+!Integer class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    ^true
+
+    "Created: / 11-02-2011 / 11:12:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Integer class methodsFor:'accessing'!
+
+javaArrayClass
+    ^ SignedIntegerArray
+
+    "Created: / 11-02-2011 / 10:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Integer class methodsFor:'autoboxing support'!
+
+javaBox:anObject 
+
+    | wrapper |
+
+    wrapper := (Java classForName: 'java.lang.Integer') new.
+    wrapper perform: #'<init>(I)V' with: anObject.
+    ^wrapper
+
+    "Created: / 16-08-2011 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Integer class methodsFor:'accessing'!
+
+javaName
+
+    ^'int'.
+
+    "Modified: / 25-02-2011 / 18:59:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!LargeInteger class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    ^true
+
+    "Created: / 04-02-2011 / 11:55:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!LargeInteger class methodsFor:'accessing'!
+
+javaArrayClass
+    ^ SignedLongIntegerArray
+
+    "Created: / 11-02-2011 / 10:51:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!LargeInteger class methodsFor:'autoboxing support'!
+
+javaBox:anObject 
+
+    | wrapper |
+
+    wrapper := (Java classForName: 'java.lang.Long') new.
+    wrapper perform: #'<init>(J)V' with: anObject.
+    ^wrapper
+
+    "Created: / 16-08-2011 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!LargeInteger class methodsFor:'accessing'!
+
+javaName
+
+    ^'long'.
+
+    "Modified: / 25-02-2011 / 18:59:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^false
+
+    "Created: / 19-12-2010 / 17:05:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object class methodsFor:'queries'!
+
+isJavaClassType
+
+    ^false
+
+    "Created: / 11-02-2011 / 08:08:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    ^false
+
+    "Created: / 20-12-2010 / 21:52:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object class methodsFor:'queries'!
+
+isJavaReferenceType
+
+    ^false
+
+    "Created: / 20-12-2010 / 21:52:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!Object class methodsFor:'queries'!
+
+isJavaType
+
+    ^false
+
+    "Created: / 20-12-2010 / 21:52:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ShortFloat class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    ^true
+
+    "Created: / 06-02-2011 / 17:21:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ShortFloat class methodsFor:'accessing'!
+
+javaArrayClass
+    ^ FloatArray
+
+    "Created: / 11-02-2011 / 10:50:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ShortFloat class methodsFor:'autoboxing support'!
+
+javaBox:anObject 
+
+    | wrapper |
+
+    wrapper := (Java classForName: 'java.lang.Float') new.
+    wrapper perform: #'<init>(F)V' with: anObject.
+    ^wrapper
+
+    "Created: / 16-08-2011 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!ShortFloat class methodsFor:'accessing'!
+
+javaName
+
+    ^'float'.
+
+    "Modified: / 25-02-2011 / 18:59:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedIntegerArray class methodsFor:'testing'!
+
+isInterface
+
+    ^false
+! !
+!SignedIntegerArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 06-02-2011 / 15:16:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedIntegerArray class methodsFor:'accessing-java'!
+
+javaArrayClass
+
+    ^JavaArray javaArrayClassFor: SignedIntegerArray
+
+    "Created: / 11-06-2011 / 23:42:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-08-2011 / 22:47:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedIntegerArray class methodsFor:'accessing'!
+
+javaComponentClass
+
+    ^ Integer
+
+    "Created: / 25-06-2011 / 08:38:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedIntegerArray class methodsFor:'accessing'!
+
+javaName
+
+    ^'[I'.
+
+    "Modified: / 25-02-2011 / 19:03:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedLongIntegerArray class methodsFor:'testing'!
+
+isInterface
+
+    ^false
+! !
+!SignedLongIntegerArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 20-12-2010 / 22:47:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedLongIntegerArray class methodsFor:'queries'!
+
+isJavaReferenceType
+
+    "Java arrays are reference types"
+    ^true
+
+    "Created: / 20-12-2010 / 22:30:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedLongIntegerArray class methodsFor:'accessing'!
+
+javaComponentClass
+
+    ^LargeInteger
+
+    "Modified: / 25-06-2011 / 08:38:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!SignedLongIntegerArray class methodsFor:'accessing'!
+
+javaName
+
+    ^'[J'.
+
+    "Modified: / 25-02-2011 / 19:03:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!UndefinedObject class methodsFor:'queries'!
+
+isJavaPrimitiveType
+
+    "void"
+
+    ^true
+
+    "Created: / 21-12-2010 / 22:52:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!UndefinedObject class methodsFor:'accessing'!
+
+javaName
+
+    ^'void'.
+
+    "Modified: / 25-02-2011 / 18:59:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!WordArray class methodsFor:'testing'!
+
+isInterface
+
+    ^false
+! !
+!WordArray class methodsFor:'queries'!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 20-12-2010 / 22:47:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!WordArray class methodsFor:'queries'!
+
+isJavaReferenceType
+
+    "Java arrays are reference types"
+    ^true
+
+    "Created: / 20-12-2010 / 22:30:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!WordArray class methodsFor:'accessing-java'!
+
+javaArrayClass
+
+    ^JavaArray javaArrayClassFor: WordArray
+
+    "Created: / 11-06-2011 / 23:42:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-08-2011 / 22:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!WordArray class methodsFor:'accessing-java'!
+
+javaComponentClass
+
+    ^Short
+
+    "Created: / 20-12-2010 / 22:13:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+!WordArray class methodsFor:'accessing'!
+
+javaName
+
+    ^'['.
+! !
\ No newline at end of file