logo

Reflection

Pods

Pod.list                       // list the pods installed
Pod.find("comAcmeFoo")         // find a pod (throws exception if not found)
Pod.find("comAcmeFoo", false)  // find a pod (returns null if not found)
p.name                         // pod name
p.version                      // pod version
p.facets                       // map of all pod facets
p.facet("description")         // lookup a pod facet
p.facet("description", "-")    // lookup a pod facet with default
p.files[`/img/icon.png`]       // lookup a resource file in myPod

Types

someObj.type                   // get the type of the an object
myPod.types                    // list the types in myPod
myPod.findType("Foo")          // find a type within myPod by its simple name
myPod.findType("Foo", false)   // returns null if type not found
Type.find("myPod::Foo")        // lookup a type by its qualified name
Type.find("myPod::Foo", false) // returns null if type not found
Int#                           // type literal for sys::Int
t.fits(Num#)                   // reflective version of is/instanceof operator
t.type.pod                     // get the pod of a type
t.qname                        // qualified name of type
t.name                         // simple unqualified name of type
t.base                         // type's base class
t.mixins                       // type's mixins or empty list
t.signature                    // formal type signature
t.make                         // make an obj of type t
t.make([arg0, arg1])           // make an obj of type t with arguments
t.facets                       // map of all declared facets
t.facets(true)                 // map of all inherited facets
t.facet("facet")               // lookup facet
t.facet("facet", "x")          // lookup facet with default
t.facet("facet", null, true)   // lookup inherited facet

Slots

someType.slot("xyz")           // lookup the slot called xyz on someType
someType.slots                 // list all the slots on someType
Slot.find("myPod::Foo.xyz")    // looukp a slot by its qualified name
Slot.find(qname, false)        // returns null if slot not found
Foo#xyz                        // slot literal
#xyz                           // slot literal (in enclosing class)
s.qname                        // qualified name
s.name                         // unqualified simple name
s.parent                       // declaring type
s.signature                    // full signature of field or method
s.facets                       // map of all facets
s.facet("facet")               // lookup facet
s.facet("facet", "x")          // lookup facet with default

Methods

someType.method("x")           // lookup the method called xyz on someType
someType.method("x", null)     // returns null if method not found
someType.methods               // list all the methods on someType
Slot.findMethod("p::Foo.x")    // looukp a method by its qualified name
Slot.findMethod(qname, false)  // returns null if method not found
m.returns                      // return type of method
m.params                       // list of parameters
m.call([arg0, arg1])           // invoke static method using reflection
m.call2(arg0, arg1)            // same as above
m.callOn(self, [arg0, arg1])   // invoke instance method using reflection
m.call([self, arg0, arg1])     // same as above
m.func                         // the function which implements the method

Fields

someType.field("x")            // lookup the field called xyz on someType
someType.field("x", null)      // returns null if field not found
someType.fields                // list all the fields on someType
Slot.findField("p::Foo.x")     // looukp a field by its qualified name
Slot.findField(qname, false)   // returns null if field not found
f.of                           // type of field
f.get                          // get static field
f.get(self)                    // get instance field
f.set(self, val)               // set instance field