de.xabsl.jxabslx.engine
Class ReflectionEngine

java.lang.Object
  extended by de.xabsl.jxabsl.engine.Symbols
      extended by de.xabsl.jxabsl.engine.Engine
          extended by de.xabsl.jxabslx.engine.ReflectionEngine

public class ReflectionEngine
extends Engine

An engine that looks up input- and output symbols and basic behaviors in a registered java object ("agent").


Field Summary
 
Fields inherited from class de.xabsl.jxabsl.engine.Symbols
debug
 
Constructor Summary
ReflectionEngine(DebugMessages debug, TimeFunction timeFunction, java.lang.Object agent)
          Constructor.
 
Method Summary
 BasicBehavior getBasicBehavior(java.lang.String name, java.util.Set<java.lang.String> decimalParameterNames, java.util.Set<java.lang.String> booleanParameterNames, java.util.Set<java.lang.String> enumeratedParameterNames)
          Returns the registered basic behavior given by a name and a set of parameter names
 BooleanInputSymbol getBooleanInputSymbol(java.lang.String name, java.util.Set<java.lang.String> decimalParameterNames, java.util.Set<java.lang.String> booleanParameterNames, java.util.Set<java.lang.String> enumeratedParameterNames)
          Returns a previously registered boolean input symbol
 BooleanOutputSymbol getBooleanOutputSymbol(java.lang.String name)
          Returns a previously registered boolean output symbol
 DecimalInputSymbol getDecimalInputSymbol(java.lang.String name, java.util.Set<java.lang.String> decimalParameterNames, java.util.Set<java.lang.String> booleanParameterNames, java.util.Set<java.lang.String> enumeratedParameterNames)
          Returns a previously registered decimal input symbol
 DecimalOutputSymbol getDecimalOutputSymbol(java.lang.String name)
          Returns a previously registered decimal output symbol
 EnumeratedInputSymbol getEnumeratedInputSymbol(java.lang.String name, java.util.Set<java.lang.String> decimalParameterNames, java.util.Set<java.lang.String> booleanParameterNames, java.util.Set<java.lang.String> enumeratedParameterNames)
          Returns a previously registered enumerated input symbol
 EnumeratedOutputSymbol getEnumeratedOutputSymbol(java.lang.String name)
          Returns a previously registered enumerated output symbol
 Enumeration getEnumeration(java.lang.String name)
          Returns a previously registered enumeration
 void setParameterOrder(java.util.Comparator<java.lang.String> order)
          Defines a mapping of Java method parameters (given by position) and XABSL parameters (given by name)
 
Methods inherited from class de.xabsl.jxabsl.engine.Engine
createOptionGraph, execute, getAgents, getBasicBehaviors, getOptions, getRootAction, getRootOption, getSelectedAgentName, registerBasicBehavior, reset, setRootAction, setRootAction, setRootAction, setSelectedAgent
 
Methods inherited from class de.xabsl.jxabsl.engine.Symbols
getBooleanInputSymbols, getBooleanOutputSymbols, getDecimalInputSymbols, getDecimalOutputSymbols, getEnumeratedInputSymbols, getEnumeratedOutputSymbols, getEnumerations, registerBooleanInputSymbol, registerBooleanOutputSymbol, registerDecimalInputSymbol, registerDecimalOutputSymbol, registerEnumeratedInputSymbol, registerEnumeratedOutputSymbol, registerEnumeration, registerInternalEnumElement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectionEngine

public ReflectionEngine(DebugMessages debug,
                        TimeFunction timeFunction,
                        java.lang.Object agent)
Constructor. Register an object with the agent parameter. On option graph construction, the engine will look at fields and methods of the registered object to find matches for any unregistered input- and output symbols or basic behaviors.
For any missing input- or output symbol foo the engine will look for the following, in this order:
  1. Getter-/setter methods, i.e. methods that have the name foo / getFoo or setFoo. Parameter list must match. One and only one method must match, or the engine will issue an error
  2. A publicly accessible field foo
For any missing basic behavior foo, the engine will look for a method called foo with an appropriate parameter list. One and only one method must match, or the engine will issue an error.

If an object of type java.lang.Class is passed as an argument, the engine will look for static fields and methods.

Parameters:
debug - for debugging output
timeFunction - a function that supplies the system time in ms.
agent - An object which contains input-, output symbols and basic behaviors. If the object is of type class, static fields and methods will be looked for in that class.
Method Detail

getBooleanInputSymbol

public BooleanInputSymbol getBooleanInputSymbol(java.lang.String name,
                                                java.util.Set<java.lang.String> decimalParameterNames,
                                                java.util.Set<java.lang.String> booleanParameterNames,
                                                java.util.Set<java.lang.String> enumeratedParameterNames)
Description copied from class: Symbols
Returns a previously registered boolean input symbol

Overrides:
getBooleanInputSymbol in class Symbols
Parameters:
name - the name of the symbol
decimalParameterNames - names of the decimal parameters
booleanParameterNames - names of the boolean parameters
enumeratedParameterNames - names of the enumerated parameters
Returns:
the input symbol

getDecimalInputSymbol

public DecimalInputSymbol getDecimalInputSymbol(java.lang.String name,
                                                java.util.Set<java.lang.String> decimalParameterNames,
                                                java.util.Set<java.lang.String> booleanParameterNames,
                                                java.util.Set<java.lang.String> enumeratedParameterNames)
Description copied from class: Symbols
Returns a previously registered decimal input symbol

Overrides:
getDecimalInputSymbol in class Symbols
Parameters:
name - the name of the symbol
decimalParameterNames - names of the decimal parameters
booleanParameterNames - names of the boolean parameters
enumeratedParameterNames - names of the enumerated parameters
Returns:
the input symbol

getEnumeratedInputSymbol

public EnumeratedInputSymbol getEnumeratedInputSymbol(java.lang.String name,
                                                      java.util.Set<java.lang.String> decimalParameterNames,
                                                      java.util.Set<java.lang.String> booleanParameterNames,
                                                      java.util.Set<java.lang.String> enumeratedParameterNames)
Description copied from class: Symbols
Returns a previously registered enumerated input symbol

Overrides:
getEnumeratedInputSymbol in class Symbols
Parameters:
name - the name of the symbol
decimalParameterNames - names of the decimal parameters
booleanParameterNames - names of the boolean parameters
enumeratedParameterNames - names of the enumerated parameters
Returns:
the input symbol

getBooleanOutputSymbol

public BooleanOutputSymbol getBooleanOutputSymbol(java.lang.String name)
Description copied from class: Symbols
Returns a previously registered boolean output symbol

Overrides:
getBooleanOutputSymbol in class Symbols
Parameters:
name - the name of the symbol
Returns:
the output symbol

getDecimalOutputSymbol

public DecimalOutputSymbol getDecimalOutputSymbol(java.lang.String name)
Description copied from class: Symbols
Returns a previously registered decimal output symbol

Overrides:
getDecimalOutputSymbol in class Symbols
Parameters:
name - the name of the symbol
Returns:
the output symbol

getEnumeratedOutputSymbol

public EnumeratedOutputSymbol getEnumeratedOutputSymbol(java.lang.String name)
Description copied from class: Symbols
Returns a previously registered enumerated output symbol

Overrides:
getEnumeratedOutputSymbol in class Symbols
Parameters:
name - the name of the symbol
Returns:
the output symbol

getBasicBehavior

public BasicBehavior getBasicBehavior(java.lang.String name,
                                      java.util.Set<java.lang.String> decimalParameterNames,
                                      java.util.Set<java.lang.String> booleanParameterNames,
                                      java.util.Set<java.lang.String> enumeratedParameterNames)
Description copied from class: Engine
Returns the registered basic behavior given by a name and a set of parameter names

Overrides:
getBasicBehavior in class Engine

getEnumeration

public Enumeration getEnumeration(java.lang.String name)
Description copied from class: Symbols
Returns a previously registered enumeration

Overrides:
getEnumeration in class Symbols
Parameters:
name - the name of the enumeration
Returns:
the enumeration

setParameterOrder

public void setParameterOrder(java.util.Comparator<java.lang.String> order)
Defines a mapping of Java method parameters (given by position) and XABSL parameters (given by name)