akka.util
Class Reflect

java.lang.Object
  extended by akka.util.Reflect

public class Reflect
extends java.lang.Object

Collection of internal reflection utilities which may or may not be available (most services specific to HotSpot, but fails gracefully).

INTERNAL API


Constructor Summary
Reflect()
           
 
Method Summary
static
<T> java.lang.reflect.Constructor<T>
findConstructor(java.lang.Class<T> clazz, scala.collection.immutable.Seq<java.lang.Object> args)
          INTERNAL API Implements a primitive form of overload resolution a.k.a.
static java.lang.reflect.Type findMarker(java.lang.Class<?> root, java.lang.Class<?> marker)
           
static scala.Option<scala.Function1<java.lang.Object,java.lang.Class<?>>> getCallerClass()
          This optionally holds a function which looks N levels above itself on the call stack and returns the Class[_] object for the code executing in that stack frame.
static
<T> T
instantiate(java.lang.Class<T> clazz)
          INTERNAL API
static
<T> T
instantiate(java.lang.Class<T> clazz, scala.collection.immutable.Seq<java.lang.Object> args)
          INTERNAL API Calls findConstructor and invokes it with the given arguments.
static
<T> T
instantiate(java.lang.reflect.Constructor<T> constructor, scala.collection.immutable.Seq<java.lang.Object> args)
          INTERNAL API Invokes the constructor with the the given arguments.
static
<T> scala.Function0<T>
instantiator(java.lang.Class<T> clazz)
          INTERNAL API
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Reflect

public Reflect()
Method Detail

getCallerClass

public static scala.Option<scala.Function1<java.lang.Object,java.lang.Class<?>>> getCallerClass()
This optionally holds a function which looks N levels above itself on the call stack and returns the Class[_] object for the code executing in that stack frame. Implemented using sun.reflect.Reflection.getCallerClass if available, None otherwise.

Hint: when comparing to Thread.currentThread.getStackTrace, add two levels.

Returns:
(undocumented)

instantiate

public static <T> T instantiate(java.lang.Class<T> clazz)
INTERNAL API

Parameters:
clazz - the class which to instantiate an instance of
Returns:
a new instance from the default constructor of the given class

instantiate

public static <T> T instantiate(java.lang.Class<T> clazz,
                                scala.collection.immutable.Seq<java.lang.Object> args)
INTERNAL API Calls findConstructor and invokes it with the given arguments.

Parameters:
clazz - (undocumented)
args - (undocumented)
Returns:
(undocumented)

instantiate

public static <T> T instantiate(java.lang.reflect.Constructor<T> constructor,
                                scala.collection.immutable.Seq<java.lang.Object> args)
INTERNAL API Invokes the constructor with the the given arguments.

Parameters:
constructor - (undocumented)
args - (undocumented)
Returns:
(undocumented)

findConstructor

public static <T> java.lang.reflect.Constructor<T> findConstructor(java.lang.Class<T> clazz,
                                                                   scala.collection.immutable.Seq<java.lang.Object> args)
INTERNAL API Implements a primitive form of overload resolution a.k.a. finding the right constructor.

Parameters:
clazz - (undocumented)
args - (undocumented)
Returns:
(undocumented)

instantiator

public static <T> scala.Function0<T> instantiator(java.lang.Class<T> clazz)
INTERNAL API

Parameters:
clazz - the class which to instantiate an instance of
Returns:
a function which when applied will create a new instance from the default constructor of the given class

findMarker

public static java.lang.reflect.Type findMarker(java.lang.Class<?> root,
                                                java.lang.Class<?> marker)