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

Description Usage Arguments Details Value Author(s) References See Also Examples

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
.JavaArrayConstructor(klass, ..., dim=length(list(...)), .name=NULL,
                      .convert=FALSE)
.JavaGetArrayElement(jobj,..., .name=NULL, .convert=TRUE)
.JavaSetArrayElement(jobj, value, ..., .dims=list(...), .convert=FALSE)
.JavaArrayLength(jobj)
## S3 method for class 'JavaArrayReference'
x[...]
## S3 replacement method for class 'JavaArrayReference'
x[...] <- value
## S3 method for class 'JavaArrayReference'
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.

Details

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

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.

Author(s)

Duncan Temple Lang, John Chambers

References

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

See Also

.Java

Examples

1
2
3
4
5
6
7
8
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)

SJava documentation built on Oct. 5, 2016, 4:17 a.m.

Related to Array in SJava...