## visad.util
Class ReflectedUniverse

    java.lang.Object
      visad.util.ReflectedUniverse

public class ReflectedUniverse
extends Object

A general-purpose reflection wrapper class. See visad.data.jai.JAIForm for examples of usage.

Field Summary
`protected boolean` `debug` Debugging flag.
`protected ClassLoader` `loader` Class loader for imported classes.
`protected Hashtable` `variables` Hashtable containing all variables present in the universe.

Constructor Summary
`ReflectedUniverse()` Constructs a new reflected universe.
`ReflectedUniverse(ClassLoader loader)` Constructs a new reflected universe that uses the given class loader.
`ReflectedUniverse(URL[] urls)` Constructs a new reflected universe, with the given URLs representing additional search paths for imported classes (in addition to the CLASSPATH).

Method Summary
`Object` `exec(String command)` Executes a command in the universe.
`Object` `getVar(String varName)` Returns the value of a variable or field in the universe.
`boolean` `isDebug()` Gets whether extended debugging output is enabled.
`static boolean` `isInstance(Class c, Object o)` Returns whether the given object is compatible with the specified class for the purposes of reflection.
`void` `setDebug(boolean debug)` Enables or disables extended debugging output.
`void` `setVar(String varName, boolean b)` Registers a variable of primitive type boolean in the universe.
`void` `setVar(String varName, byte b)` Registers a variable of primitive type byte in the universe.
`void` `setVar(String varName, char c)` Registers a variable of primitive type char in the universe.
`void` `setVar(String varName, double d)` Registers a variable of primitive type double in the universe.
`void` `setVar(String varName, float f)` Registers a variable of primitive type float in the universe.
`void` `setVar(String varName, int i)` Registers a variable of primitive type int in the universe.
`void` `setVar(String varName, long l)` Registers a variable of primitive type long in the universe.
`void` `setVar(String varName, Object obj)` Registers a variable in the universe.
`void` `setVar(String varName, short s)` Registers a variable of primitive type short in the universe.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### variables

    protected Hashtable variables

  Hashtable containing all variables present in the universe.

### loader

    protected ClassLoader loader

  Class loader for imported classes.

### debug

    protected boolean debug

  Debugging flag.

Constructor Detail

### ReflectedUniverse

    public ReflectedUniverse()

  Constructs a new reflected universe.

### ReflectedUniverse

    public ReflectedUniverse(URL[] urls)

  Constructs a new reflected universe, with the given URLs representing additional search paths for imported classes (in addition to the CLASSPATH).

### ReflectedUniverse

    public ReflectedUniverse(ClassLoader loader)

  Constructs a new reflected universe that uses the given class loader.

Method Detail

### isInstance

    public static boolean isInstance(Class c,
                                     Object o)

  Returns whether the given object is compatible with the specified class for the purposes of reflection.

### exec

    public Object exec(String command)
                throws VisADException

  Executes a command in the universe. The following syntaxes are valid:
  - import fully.qualified.package.ClassName
  - var = new ClassName(param1, ..., paramN)
  - var.method(param1, ..., paramN)
  - var2 = var1.method(param1, ..., paramN)
  - ClassName.method(param1, ..., paramN)

    Important guidelines:

  - Any referenced class must be imported first using "import".
  - Variables can be exported from the universe with getVar().
  - Variables can be imported to the universe with setVar().
  - Each parameter must be either a variable in the universe or a static or instance field (i.e., no nested methods).

  Throws:
    `VisADException`

### setVar

    public void setVar(String varName,
                       Object obj)

  Registers a variable in the universe.

### setVar

    public void setVar(String varName,
                       boolean b)

  Registers a variable of primitive type boolean in the universe.

### setVar

    public void setVar(String varName,
                       byte b)

  Registers a variable of primitive type byte in the universe.

### setVar

    public void setVar(String varName,
                       char c)

  Registers a variable of primitive type char in the universe.

### setVar

    public void setVar(String varName,
                       double d)

  Registers a variable of primitive type double in the universe.

### setVar

    public void setVar(String varName,
                       float f)

  Registers a variable of primitive type float in the universe.

### setVar

    public void setVar(String varName,
                       int i)

  Registers a variable of primitive type int in the universe.

### setVar

    public void setVar(String varName,
                       long l)

  Registers a variable of primitive type long in the universe.

### setVar

    public void setVar(String varName,
                       short s)

  Registers a variable of primitive type short in the universe.

### getVar

    public Object getVar(String varName)
                  throws VisADException

  Returns the value of a variable or field in the universe. Primitive types will be wrapped in their Java Object wrapper classes.

  Throws:
    `VisADException`

### setDebug

    public void setDebug(boolean debug)

  Enables or disables extended debugging output.

### isDebug

    public boolean isDebug()

  Gets whether extended debugging output is enabled.