SJava (version 0.98.0)

.JavaArrayConstructor: Create and access elements of Java arrays from R.

Description

These functions allow one to create multi-dimensional Java arrays via R commands using the .Java function. The get and set accessors work element-wise and not in the vector fashion common in R and S. One must create and initialize the Java virtual machine before calling any of these functions. See .JavaInit.

Usage

.JavaArrayConstructor(klass, ..., dim=length(list(...)), .name=NULL, .convert=FALSE) .JavaGetArrayElement(jobj,..., .name=NULL, .convert=TRUE) .JavaSetArrayElement(jobj, value, ..., .dims=list(...), .convert=FALSE) .JavaArrayLength(jobj) "["(x, ...) "["(x, ...) <- value "length"(x)

Arguments

klass
Typically a string (character vector of length 1) identifying the name of the class of the element type in the array to be created. This can also be a foreign reference to a Java class object obtained via an earlier call to .Java.
...
In the .JavaArrayConstructor, these are currently ignored. They are intended to be initializing values that are used to populate the top-level values of the new array. That is, they are used to set arr[0], arr[1], arr[2], ....

In the JavaArrayReference methods these are indicies passed to .JavaGetArrayElement and .JavaSetArrayElement.

dim
When creating an array in .JavaArrayConstructor, these specify both the number of dimensions and the length of each dimension in the array to be created.
.dims
When setting an array element in .JavaSetArrayElement, a list of integer(1) values corresponding to array dimensions of the element to be set.
jobj, x
This is the reference to the Java array returned from an earlier call to .JavaArrayConstructor or the return value from a call to .Java.
value
the object to be inserted as an element in the Java array. This is converted to a Java object using the usual conversion rules and then inserted into the Java array.
.name
The name to use to store the result in the omegahat named reference database. If this is missing, an anonymous reference is returned or the value converted to an R object. If the result of the Java method can be converted, this argument can be used to prohibit this conversion and leave the Java value in Omegahat for use in future .Java calls.
.convert
a logical value that indicates whether the Omegahat manager should attempt to convert the result of the method call. This is usually TRUE, but can be explicitly specified to avoid (arrays of) primitive object being converted to an R object when it is to be used in a subsequent .Java call.

Value

.JavaArrayConstructor returns a reference to the newly create Java array object..JavaArrayLength returns a single integer giving the length of the top-level dimension of the array..JavaGetArrayElement returns the value of the specified element of the given array, converted to an R object as usual. Thus it may be a Java reference..JavaSetArrayElement returns NULL.

Details

This uses the .Java to call methods in the Omegahat Evaluator which process the array request.

References

http://www.javasoft.com, http://www.omegahat.org

See Also

.Java

Examples

Run this code
if (!isJavaInitialized())
    .JavaInit(verbose=TRUE)
a <- .JavaArrayConstructor("java.lang.String", dim=3)
.JavaArrayLength(a)
.JavaSetArrayElement(a, "First", 1)
.JavaSetArrayElement(a, "Second", 2)
.JavaSetArrayElement(a, "Third", 3)
.JavaGetArrayElement(a, 2)

Run the code above in your browser using DataLab