Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

with

with and within methods for Java objects and class names


Description

Convenience wrapper that allow calling methods of Java object and classes from within the object (or class).

Usage

## S3 method for class 'jobjRef'
with(data, expr, ...)
## S3 method for class 'jobjRef'
within(data, expr, ...)

## S3 method for class 'jarrayRef'
with(data, expr, ...)
## S3 method for class 'jarrayRef'
within(data, expr, ...)

## S3 method for class 'jclassName'
with(data, expr, ...)
## S3 method for class 'jclassName'
within(data, expr, ...)

Arguments

data

A Java object reference or a java class name. See J

expr

R expression to evaluate

...

ignored

Details

The expression is evaluated in an environment that contains a mapping between the public fields and methods of the object.

The methods of the object are mapped to standard R functions in the environment. In case of classes, only static methods are used.

The fields of the object are mapped to active bindings (see makeActiveBinding) so that they can be accessed and modified from within the environment. For classes, only static fields are used.

Value

with returns the value of the expression and within returns the data argument

Author(s)

Romain Francois <francoisromain@free.fr>

References

Examples

if (!nzchar(Sys.getenv("NOAWT"))) {
  p <- .jnew( "java/awt/Point", 0L, 0L )
  with( p, {
	# x and y and now 0
	move( 10L, 10L )
	# x and y are now 10
	x <- x + y
  } )

  f <- within( .jnew( "javax/swing/JFrame" ) , {
	layout <- .jnew( "java/awt/BorderLayout" )
	setLayout( layout )
	add( .jnew( "javax/swing/JLabel", "north" ), layout$NORTH )
	add( .jnew( "javax/swing/JLabel", "south" ), layout$SOUTH )
	add( .jnew( "javax/swing/JLabel", "west" ), layout$WEST )
	add( .jnew( "javax/swing/JLabel", "east" ), layout$EAST )
	setSize( .jnew( "java/awt/Dimension", 400L, 400L ) )
	setVisible( TRUE )
  } )
}

Double <- J("java.lang.Double")
with( Double, MIN_VALUE )
with( Double, parseDouble( "10.2" ) )

## Not run: 
# inner class example

HashMap <- J("java.util.HashMap")
with( HashMap, new( SimpleEntry, "key", "value" ) )
with( HashMap, SimpleEntry )

## End(Not run)

with( J("java.lang.System"), getProperty("java.home") )

rJava

Low-Level R to Java Interface

v1.0-4
LGPL-2.1
Authors
Simon Urbanek <simon.urbanek@r-project.org>
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.