extensions.st
author Claus Gittinger <cg@exept.de>
Thu, 24 Nov 2011 12:54:24 +0100
changeset 2290 cd61fd0b66ac
parent 2152 1cbdfbcc685c
child 2339 bf462a66e675
permissions -rw-r--r--
fixed: #version_SVN ($ to ยง)

"{ 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

    ^'['.
! !