module lang::flybytes::Mirror
rascal-0.40.17
flybytes-0.2.8
Provides a native interface to Java objects via class and object reflection.
Usage
import lang::flybytes::Mirror;
Source code
http://github.com/usethesource/flybytes/blob/main/src/lang/flybytes/Mirror.rsc
Dependencies
import lang::flybytes::Syntax;
Description
Using this Mirror representation you can test generated class files by loading the class and executing static methods on the classes, getting static fields, allocating new instances, calling methods on these instances, etc. There is also support for native arrays.
data Mirror
data Mirror
= class(str class,
Mirror (Signature method, list[Mirror] args) invokeStatic,
Mirror (str name) getStatic,
Mirror (Signature constructor, list[Mirror] args) newInstance,
Mirror (Type \type) getAnnotation)
| object(Mirror classMirror,
Mirror (Signature method, list[Mirror] args) invoke,
Mirror (str name) getField,
&T (type[&T] expect) toValue)
| array(int () length,
Mirror (int index) load)
| \null()
;
function val
Reflects a Rascal value as a JVM object Mirror.
Mirror val(value v)
function classMirror
Reflects a JVM class object as Mirror class.
Mirror classMirror(str name,list[loc] classpath = [|system:///|])
function array
Creates a mirrored array.
Mirror array(Type \type, list[Mirror] elems)
function array
Creates a mirrored array.
Mirror array(Type \type, int length)
function toString
str toString(Mirror m:object(_, _, _, _))
str toString(class(str name, _, _, _, _))
str toString(null())
str toString(Mirror m:array(_, _))
function integer
Mirror integer(int v)
function long
Mirror long(int v)
function byte
Mirror byte(int v)
function short
Mirror short(int v)
function character
Mirror character(int v)
function string
Mirror string(str v)
function double
Mirror double(real v)
function float
Mirror float(real v)
function boolean
Mirror boolean(bool v)
function prim
Mirror prim(integer(), int t)
Mirror prim(short(), int t)
Mirror prim(byte(), int t)
Mirror prim(long(), int t)
Mirror prim(double(), real t)
Mirror prim(float(), real t)
Mirror prim(string(), str t)
Mirror prim(character(), int t)
Mirror prim(boolean(), bool t)
function integer
int integer(Mirror i)
function long
int long(Mirror l)
function byte
int byte(Mirror b)
function short
int short(Mirror s)
function string
str string(Mirror s)
function double
real double(Mirror d)
function float
real float(Mirror f)
function character
int character(Mirror f)
function boolean
bool boolean(Mirror f)