If the method returns a Java primitive instead of an object, EGL stores an object that represents the primitive. For example, if the method returns an int, EGL stores an object of type java.lang.Integer.
For more information about the EGL Java object space in which javaLib.store() and similar functions operate, see Java access functions. EGL maintains this method of Java access for compatibility with earlier versions. For new code, use the more powerful ExternalType syntax (see ExternalType part).
javaLib.store( storeId javaObjId in, identifierOrClass javaObjId in, method STRING in {, argument anyEGLPrimitive in} )
The following example invokes myMethod and associates the results with storeID.
javaLib.store("storeId" as "objID:java", "myId" as "objID:java", "myMethod", myVar as "java:smallfloat");
If the v60ExceptionCompatibility program property is not set, or is set to NO, an exception causes a JavaObjectException. Other errors can cause a RuntimeException.
If the v60ExceptionCompatibility program property is set to YES, an error during processing of javaLib.store() can set sysVar.errorCode to a value listed in the next table.
Value in sysVar.errorCode | Description |
---|---|
00001000 | An exception was thrown by an invoked method or as a result of a class initialization |
00001001 | The object was null, or the specified identifier was not in the object space |
00001002 | A public method, field, or class with the specified name does not exist or cannot be loaded |
00001003 | The EGL primitive type does not match the type expected in Java |
00001006 | The class of an argument cast to null could not be loaded |
00001007 | A SecurityException or IllegalAccessException was thrown during an attempt to get information about a method or field; or an attempt was made to set the value of a field that was declared final |
00001009 | An identifier rather than a class name must be specified; the method or field is not static |