com.phoenix_int.aserver
Class PHXSimpleSelfManager

java.lang.Object
  extended by com.phoenix_int.aserver.PHXSimpleSelfManager
All Implemented Interfaces:
IPHXSelfManager
Direct Known Subclasses:
PHXSimpleSelfManager2

public class PHXSimpleSelfManager
extends java.lang.Object
implements IPHXSelfManager

This is a class that implements most of the functionality of a self-managing components. The class provides utility functions for storing variables. These variables are then served to the Analysis Server automatically through the listProperites, getValue, and setValue functions.


Constructor Summary
PHXSimpleSelfManager()
           
 
Method Summary
protected  void addMethod(java.lang.String name)
          relay function for addMethod( String name, boolean isVisible=true )
protected  void addMethod(java.lang.String name, boolean isVisible)
          relay function for addMethod( String name, String fullName = name, boolean isVisible )
protected  void addMethod(java.lang.String name, java.lang.String fullName)
          relay function for addMethod( String name, String fullName, boolean isVisible=true )
protected  void addMethod(java.lang.String name, java.lang.String fullName, boolean isVisible)
          relay function for addMethod( String name, String fullName, boolean isVisible, boolean downloadInputs = false )
protected  void addMethod(java.lang.String name, java.lang.String fullName, boolean isVisible, boolean downloadInputs)
          adds a method name to the object
protected  void addVariable(PHXVariableInfo varInfo)
          adds a variable information object to the manager
protected  void addVariable(java.lang.String varName, boolean isInput, java.lang.Object var)
          adds a variable object to the manager
protected  void addVariable(java.lang.String groupName, PHXVariableInfo varInfo)
          adds a variable information object to the manager
protected  void addVariable(java.lang.String groupName, java.lang.String varName, boolean isInput, java.lang.Object var)
          adds a variable object to the manager
 void forceSetValue(java.lang.String name, java.lang.String value)
          sets the value for a variable regardless of whether it's an input or an output
protected  PHXGroup getGroup(java.lang.String group)
          retrieves a group.
protected  PHXMethodDescriptor getMethodDescriptor(java.lang.String name)
          find the Method Descriptor associated with a given name
 PHXMethodDescriptor[] getMethodDescriptors()
          retrieves a set of method descriptors for this object
 PHXPropertyDescriptor[] getPropertyDescriptors(java.lang.String name)
          retrieves a set of property descriptors for the variables managed by this object or one of it's subobjects
protected  com.phoenix_int.aserver.Remainder getRemainder(java.lang.String varName)
          retrieves the variable matching the specified name
 PHXGroup getRootGroup()
          retrieves the root group
 java.lang.String getValue(java.lang.String name)
          retrieves the value for the appropriate variable
 java.lang.Object getValue2(java.lang.String name)
          retrieves the value for the appropriate variable
 java.lang.String getVariableFullName(java.lang.Object var)
          gets the name of a variable
 PHXVariableInfo getVariableInfo(java.lang.Object var)
          gets the information about a variable
protected  PHXVariableInfo getVariableInfo(java.lang.String fullVarName)
          retrieves a variable information object from the manager
protected  PHXVariableInfo getVariableInfo(java.lang.String groupName, java.lang.String varName)
          retrieves a variable information object from the manager
 java.lang.String invoke(java.lang.String methodName)
          Invokes a named method.
 PHXInvokeReturn invoke2(java.lang.String methodName)
          Invokes a named method.
protected  PHXGroup makeGroup(java.lang.String group)
          creates a group.
protected  boolean removeVariable(PHXVariableInfo varInfo)
          removes a variable.
 void setValue(java.lang.String name, java.lang.String value)
          stores a value into the appropriate variable
 void setValue2(java.lang.String name, PHXStringBuffer value)
          stores a value into the appropriate variable
 void setValueActual(java.lang.String name, java.lang.Object value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PHXSimpleSelfManager

public PHXSimpleSelfManager()
Method Detail

addVariable

protected void addVariable(java.lang.String groupName,
                           java.lang.String varName,
                           boolean isInput,
                           java.lang.Object var)
                    throws PHXNameAlreadyInUseException,
                           PHXInvalidNameException
adds a variable object to the manager

Parameters:
groupName - the group to store the variable in. May be a dot-separated list of groups
varName - the name of the variable
isInput - true if the variable is an input
var - the variable information to add
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

addVariable

protected void addVariable(java.lang.String varName,
                           boolean isInput,
                           java.lang.Object var)
                    throws PHXNameAlreadyInUseException,
                           PHXInvalidNameException
adds a variable object to the manager

Parameters:
varName - the name of the variable
isInput - true if the variable is an input
var - the variable information to add
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

addVariable

protected void addVariable(PHXVariableInfo varInfo)
                    throws PHXNameAlreadyInUseException,
                           PHXInvalidNameException
adds a variable information object to the manager

Parameters:
varInfo - the variable information object
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

addVariable

protected void addVariable(java.lang.String groupName,
                           PHXVariableInfo varInfo)
                    throws PHXNameAlreadyInUseException,
                           PHXInvalidNameException
adds a variable information object to the manager

Parameters:
groupName - the group to store the variable in. May be a dot-separated list of groups
varInfo - the variable information object
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

removeVariable

protected boolean removeVariable(PHXVariableInfo varInfo)
removes a variable. The groups will be searched for the matching variable.

Parameters:
varInfo - the variable structure to remove
Returns:
false if the variable was not found

addMethod

protected void addMethod(java.lang.String name,
                         java.lang.String fullName,
                         boolean isVisible,
                         boolean downloadInputs)
                  throws PHXNameAlreadyInUseException,
                         PHXInvalidNameException
adds a method name to the object

Parameters:
name - the name of the method
fullName - the human readable name
isVisible - if true, the method is displayed using the listMethods command. Invoking is handled by the derived class, so it is up to it whether invisible methods may be invoked.
downloadInputs - if true, signal calling application that input variable values need to be reread
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

getMethodDescriptor

protected PHXMethodDescriptor getMethodDescriptor(java.lang.String name)
find the Method Descriptor associated with a given name


addMethod

protected void addMethod(java.lang.String name,
                         java.lang.String fullName,
                         boolean isVisible)
                  throws PHXNameAlreadyInUseException,
                         PHXInvalidNameException
relay function for addMethod( String name, String fullName, boolean isVisible, boolean downloadInputs = false )

Parameters:
name - the name of the method
fullName - the human readable name
isVisible - if true, the method is displayed using the listMethods command. Invoking is handled by the derived class, so it is up to it whether invisible methods may be invoked.
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

addMethod

protected void addMethod(java.lang.String name,
                         boolean isVisible)
                  throws PHXNameAlreadyInUseException,
                         PHXInvalidNameException
relay function for addMethod( String name, String fullName = name, boolean isVisible )

Parameters:
name - the name of the method
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

addMethod

protected void addMethod(java.lang.String name,
                         java.lang.String fullName)
                  throws PHXNameAlreadyInUseException,
                         PHXInvalidNameException
relay function for addMethod( String name, String fullName, boolean isVisible=true )

Parameters:
name - the name of the method
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

addMethod

protected void addMethod(java.lang.String name)
                  throws PHXNameAlreadyInUseException,
                         PHXInvalidNameException
relay function for addMethod( String name, boolean isVisible=true )

Parameters:
name - the name of the method
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

makeGroup

protected PHXGroup makeGroup(java.lang.String group)
                      throws PHXNameAlreadyInUseException,
                             PHXInvalidNameException
creates a group. If the group already exists, it is just returned

Parameters:
group - the name of the group. This name follows the dot-syntax format for the parent-child relationship
Throws:
PHXNameAlreadyInUseException - thrown if the name is already in use
PHXInvalidNameException - thrown if the name has invalid characters

getVariableFullName

public java.lang.String getVariableFullName(java.lang.Object var)
                                     throws PHXNoSuchObjectException
gets the name of a variable

Parameters:
var - the variable object
Returns:
the name of the variable or null if not found
Throws:
PHXNoSuchObjectException

getVariableInfo

public PHXVariableInfo getVariableInfo(java.lang.Object var)
                                throws PHXNoSuchObjectException
gets the information about a variable

Parameters:
var - the variable object
Returns:
the PHXVariableInfo object associated with the variable
Throws:
PHXNoSuchObjectException - thrown if the specified variable is not found

getVariableInfo

protected PHXVariableInfo getVariableInfo(java.lang.String fullVarName)
                                   throws PHXNoSuchObjectException
retrieves a variable information object from the manager

Parameters:
fullVarName - The var name in format "group.group.name"
Returns:
the associated variableInfo object
Throws:
PHXNoSuchObjectException - thrown if the specified variable is not found

getVariableInfo

protected PHXVariableInfo getVariableInfo(java.lang.String groupName,
                                          java.lang.String varName)
                                   throws PHXNoSuchObjectException
retrieves a variable information object from the manager

Parameters:
groupName - the group to store the variable in. May be a dot-separated list of groups
varName - the name of the variable information object
Returns:
the associated variableInfo object
Throws:
PHXNoSuchObjectException - thrown if the specified variable is not found

getGroup

protected PHXGroup getGroup(java.lang.String group)
                     throws PHXNoSuchObjectException
retrieves a group.

Parameters:
group - the name of the group. This name follows the dot-syntax format for the parent-child relationship
Throws:
PHXNoSuchObjectException - thrown if the specified group is not found

getRemainder

protected com.phoenix_int.aserver.Remainder getRemainder(java.lang.String varName)
                                                  throws PHXNoSuchObjectException,
                                                         java.lang.IllegalAccessException,
                                                         java.lang.reflect.InvocationTargetException
retrieves the variable matching the specified name

Parameters:
varName - the name fo the variable
Returns:
the variable structure
Throws:
PHXNoSuchObjectException - thrown if the specified variable is not found
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException

getRootGroup

public PHXGroup getRootGroup()
retrieves the root group

Returns:
the root group

setValue

public void setValue(java.lang.String name,
                     java.lang.String value)
              throws PHXNoSuchObjectException,
                     PHXNoSuchWriteableObjectException,
                     java.lang.Exception
stores a value into the appropriate variable

Specified by:
setValue in interface IPHXSelfManager
Parameters:
name - the name of the variable
value - the value to store
Throws:
PHXNoSuchObjectException - thrown if the specified object does not exist
PHXNoSuchWriteableObjectException - thrown if the specified object cannot be written to
java.lang.Exception - thrown if the value cannot be set

setValue2

public void setValue2(java.lang.String name,
                      PHXStringBuffer value)
               throws PHXNoSuchObjectException,
                      PHXNoSuchWriteableObjectException,
                      java.lang.Exception
stores a value into the appropriate variable

Parameters:
name - the name of the variable
value - the value to store
Throws:
PHXNoSuchObjectException - thrown if the specified object does not exist
PHXNoSuchWriteableObjectException - thrown if the specified object cannot be written to
java.lang.Exception - thrown if the value cannot be set

forceSetValue

public void forceSetValue(java.lang.String name,
                          java.lang.String value)
                   throws PHXNoSuchObjectException,
                          java.lang.Exception
sets the value for a variable regardless of whether it's an input or an output

Parameters:
name - the name of the variable
value - the value to store
Throws:
PHXNoSuchObjectException - thrown if the specified object does not exist
java.lang.Exception - thrown if the value cannot be set

setValueActual

public void setValueActual(java.lang.String name,
                           java.lang.Object value)
                    throws PHXNoSuchObjectException,
                           PHXNoSuchWriteableObjectException,
                           java.lang.IllegalAccessException,
                           java.lang.reflect.InvocationTargetException
Throws:
PHXNoSuchObjectException
PHXNoSuchWriteableObjectException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException

getValue

public java.lang.String getValue(java.lang.String name)
                          throws PHXNoSuchObjectException,
                                 java.lang.Exception
retrieves the value for the appropriate variable

Specified by:
getValue in interface IPHXSelfManager
Parameters:
name - the name of the variable
Returns:
a String reprentation of the value
Throws:
PHXNoSuchObjectException - thrown if the specified object does not exist
java.lang.Exception - thrown if the value cannot be retrieved

getValue2

public java.lang.Object getValue2(java.lang.String name)
                           throws PHXNoSuchObjectException,
                                  java.lang.Exception
retrieves the value for the appropriate variable

Parameters:
name - the name of the variable
Throws:
PHXNoSuchObjectException - thrown if the specified object does not exist
java.lang.Exception - thrown if the value cannot be retrieved

getPropertyDescriptors

public PHXPropertyDescriptor[] getPropertyDescriptors(java.lang.String name)
                                               throws PHXNoSuchObjectException,
                                                      java.lang.Exception
retrieves a set of property descriptors for the variables managed by this object or one of it's subobjects

Specified by:
getPropertyDescriptors in interface IPHXSelfManager
Parameters:
name - the name of the object to retrieve the property descriptors. If the value is null, then the top level is searched.
Returns:
an array of PHXPropertyDescriptors
Throws:
PHXNoSuchObjectException - thrown if the specified object does not exist
java.lang.Exception - thrown if the properties cannot be retrieved

getMethodDescriptors

public PHXMethodDescriptor[] getMethodDescriptors()
                                           throws java.lang.Exception
retrieves a set of method descriptors for this object

Specified by:
getMethodDescriptors in interface IPHXSelfManager
Returns:
an array of MethodDescriptors
Throws:
java.lang.Exception - thrown if the properties cannot be retrieved

invoke

public java.lang.String invoke(java.lang.String methodName)
                        throws java.lang.Exception
Invokes a named method.

Specified by:
invoke in interface IPHXSelfManager
Parameters:
methodName - the name of the method to invoke on obj
Returns:
the return value from the invocation
Throws:
java.lang.Exception - thrown if a problem occurs invoking the method

invoke2

public PHXInvokeReturn invoke2(java.lang.String methodName)
                        throws java.lang.Exception
Invokes a named method.

Parameters:
methodName - the name of the method to invoke on obj
Returns:
the return value from the invocation
Throws:
java.lang.Exception - thrown if a problem occurs invoking the method