Class JavaInteroperabilityUtils
- java.lang.Object
-
- org.protelis.lang.interpreter.util.JavaInteroperabilityUtils
-
public final class JavaInteroperabilityUtils extends java.lang.Object
Collection of utilities that ease the interoperability with Java.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Object
runMethodWithProtelisArguments(ExecutionContext context, ProtelisAST<?> receiver, java.lang.String method, ProtelisAST<?>... arguments)
Executes a Java method on a reiceiver Java object computed by Protelis using Protelis-produced arguments.static java.lang.Object
runProtelisFunction(ExecutionContext context, ProtelisAST<FunctionDefinition> function, java.util.List<ProtelisAST<?>> arguments)
Runs a Protelis function from Java, provided context and arguments.static java.lang.Object
runProtelisFunctionWithJavaArguments(ExecutionContext context, FunctionDefinition function, java.util.List<?> arguments)
Runs a Protelis function from Java using Java-produced arguments, provided a context.static java.lang.Object
runProtelisFunctionWithJavaArguments(ExecutionContext context, ProtelisAST<FunctionDefinition> function, java.lang.Object... arguments)
Runs a Protelis function from Java using Java-produced arguments, provided a context.static java.lang.Object
runStaticMethodWithProtelisArguments(ExecutionContext context, java.lang.reflect.Method method, ProtelisAST<?>... arguments)
Executes a static Java method using Protelis-produced arguments.static java.util.function.BinaryOperator<java.lang.Object>
toBinaryOperator(ExecutionContext context, FunctionDefinition binaryOperator)
Converts a protelisFunctionDefinition
to a JavaBinaryOperator
.static <R> java.util.function.Function<java.lang.Object,R>
toFunction(ExecutionContext context, FunctionDefinition function)
Converts a protelisFunctionDefinition
to a JavaFunction
.
-
-
-
Field Detail
-
METADATA
public static final Metadata METADATA
A fake Metadata object to be used when no data or original source code is available.
-
-
Method Detail
-
runStaticMethodWithProtelisArguments
public static java.lang.Object runStaticMethodWithProtelisArguments(ExecutionContext context, java.lang.reflect.Method method, ProtelisAST<?>... arguments)
Executes a static Java method using Protelis-produced arguments.- Parameters:
context
-ExecutionContext
method
- a validMethod
namearguments
- the arguments for the method- Returns:
- the result of the evaluation
-
runMethodWithProtelisArguments
public static java.lang.Object runMethodWithProtelisArguments(ExecutionContext context, ProtelisAST<?> receiver, java.lang.String method, ProtelisAST<?>... arguments)
Executes a Java method on a reiceiver Java object computed by Protelis using Protelis-produced arguments.- Parameters:
context
-ExecutionContext
receiver
- theProtelisAST
on which annotation the method will be invokedmethod
- a validMethod
namearguments
- the arguments for the method- Returns:
- the result of the evaluation
-
runProtelisFunction
@Nonnull public static java.lang.Object runProtelisFunction(ExecutionContext context, ProtelisAST<FunctionDefinition> function, java.util.List<ProtelisAST<?>> arguments)
Runs a Protelis function from Java, provided context and arguments.- Parameters:
context
-ExecutionContext
function
- anProtelisAST
with theFunctionDefinition
to instance and usearguments
- the function arguments- Returns:
- the result of the evaluation
-
runProtelisFunctionWithJavaArguments
public static java.lang.Object runProtelisFunctionWithJavaArguments(ExecutionContext context, ProtelisAST<FunctionDefinition> function, java.lang.Object... arguments)
Runs a Protelis function from Java using Java-produced arguments, provided a context.- Parameters:
context
-ExecutionContext
function
- anProtelisAST
with theFunctionDefinition
to instance and usearguments
- the function arguments- Returns:
- the result of the evaluation
-
runProtelisFunctionWithJavaArguments
@Nonnull public static java.lang.Object runProtelisFunctionWithJavaArguments(@Nonnull ExecutionContext context, @Nonnull FunctionDefinition function, @Nonnull java.util.List<?> arguments)
Runs a Protelis function from Java using Java-produced arguments, provided a context.- Parameters:
context
-ExecutionContext
function
- theFunctionDefinition
to instance and usearguments
- the function arguments- Returns:
- the result of the evaluation
-
toBinaryOperator
public static java.util.function.BinaryOperator<java.lang.Object> toBinaryOperator(ExecutionContext context, FunctionDefinition binaryOperator)
Converts a protelisFunctionDefinition
to a JavaBinaryOperator
.- Parameters:
context
- theExecutionContext
binaryOperator
- theFunctionDefinition
to convert to Java- Returns:
- a java
BinaryOperator
-
toFunction
public static <R> java.util.function.Function<java.lang.Object,R> toFunction(ExecutionContext context, FunctionDefinition function)
Converts a protelisFunctionDefinition
to a JavaFunction
.- Type Parameters:
R
- Return type of the function- Parameters:
context
- theExecutionContext
function
- theFunctionDefinition
to convert to Java- Returns:
- a java
Function
-
-