es.iac.ing.codeso.status.server
Class StatusItemIdl<X extends org.omg.CORBA.portable.IDLEntity>

java.lang.Object
  extended by es.iac.ing.codeso.status.server.StatusItem<StatusItemDescriptorIdl,StatusItemValueIdl>
      extended by es.iac.ing.codeso.status.server.StatusItemIdl<X>

@ThreadSafe
public class StatusItemIdl<X extends org.omg.CORBA.portable.IDLEntity>
extends StatusItem<StatusItemDescriptorIdl,StatusItemValueIdl>

A status item supporting the CODESO IDL-specified type: STATUS_TYPE_COMPLEX_DEFINED_BY_IDL.

This class is thread-safe.


Field Summary
private  java.lang.reflect.Method anyExtractMethod
          Holds reference to a method in the constructor-specified helper class which may be used for extracting the parameterized value from a CORBA Any.
private  java.lang.reflect.Method anyInsertMethod
          Holds reference to a method in the constructor-specified helper class which may be used for inserting the parameterized value into a CORBA Any.
private  java.lang.Class<X> xClass
          Holds a reference to the value class associated with this status item.
 
Fields inherited from class es.iac.ing.codeso.status.server.StatusItem
DEFAULT_LOGGING_STATE
 
Constructor Summary
StatusItemIdl(java.lang.Class<X> xClass, java.lang.Class xHelperClass, CorbaName corbaName, StatusItemPublicationPolicy statusItemPublicationPolicy, StatusItemDescriptorIdl statusItemDescriptorIdl)
          Constructs a new instance based directly on the information contained in the supplied descriptor and publication policy objects.
StatusItemIdl(java.lang.Class<X> xClass, java.lang.Class xHelperClass, CorbaName corbaName, java.lang.String system, java.lang.String subsystem, java.lang.String property, java.lang.String engineeringUnits, org.omg.CORBA.Any idlDescriptor)
          Constructs a new instance.
 
Method Summary
 X getTypedValue()
          Gets the current value of this status item and converts it to the parameterized type on which this class is based.
 void setValue(StatusItemValueIdl newValue)
          Sets the value of this status item based directly on the supplied value object.
 void setValue(X newValue)
          Sets the value of this status item, leaving its boolean attributes unchanged.
 void setValue(X newValue, java.lang.Boolean active, java.lang.Boolean exceptional)
          Sets the value of this status item, or the value of one of its boolean attributes.
 
Methods inherited from class es.iac.ing.codeso.status.server.StatusItem
activate, awaitRegistration, getCorbaName, getDescriptor, getInfo, getStatistics, getValue, isActive, isLoggingEnabled, isRegistered, isShutdown, isValueActive, isValueExceptional, isValueInErrorState, setActive, setErrorValue, setErrorValue, setErrorValue, setExceptional, setLoggingState, shutdown, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

xClass

private final java.lang.Class<X extends org.omg.CORBA.portable.IDLEntity> xClass
Holds a reference to the value class associated with this status item.


anyInsertMethod

private final java.lang.reflect.Method anyInsertMethod
Holds reference to a method in the constructor-specified helper class which may be used for inserting the parameterized value into a CORBA Any.


anyExtractMethod

private final java.lang.reflect.Method anyExtractMethod
Holds reference to a method in the constructor-specified helper class which may be used for extracting the parameterized value from a CORBA Any.

Constructor Detail

StatusItemIdl

public StatusItemIdl(java.lang.Class<X> xClass,
                     java.lang.Class xHelperClass,
                     CorbaName corbaName,
                     java.lang.String system,
                     java.lang.String subsystem,
                     java.lang.String property,
                     java.lang.String engineeringUnits,
                     org.omg.CORBA.Any idlDescriptor)
Constructs a new instance.

The publication policy for this instance will be based on the default settings specified in the StatusItemPublicationPolicy class. Where the default is inappropriate programmers should use the more complex form of the constructor in which the publication policy may be directly specified.

Once created the status item will remain dormant until activated via the activate method.

Parameters:
xClass - reference to the class file associated with the class instance parameterized type.
xHelperClass - reference to the class file associated with the class which can translate between the parameterized type and a CORBA Any .
corbaName - CorbaName specifying the name of the StatusItem and the location of the CORBA Naming Service on which it is to be registered.
system - String specifying the system with which this status item will be associated. For example: "INGRID".
subsystem - String specifying the subsystem with which this status item will be associated. For example: "Filter Wheel 1".
property - String specifying the property with which this status item will be associated. For example: "Angular Position"
engineeringUnits - String specifying the engineering units in which this status item is expressed. For example: "Degrees"
idlDescriptor - CORBA Any providing optional additional information describing the status item. This parameter may be set to null if not required.
Throws:
java.lang.NullPointerException - if any reference parameter was null.
java.lang.IllegalArgumentException - if the specified helper class did not contain appropriate method signatures for translating between type and a Corba Any.

StatusItemIdl

public StatusItemIdl(java.lang.Class<X> xClass,
                     java.lang.Class xHelperClass,
                     CorbaName corbaName,
                     StatusItemPublicationPolicy statusItemPublicationPolicy,
                     StatusItemDescriptorIdl statusItemDescriptorIdl)
Constructs a new instance based directly on the information contained in the supplied descriptor and publication policy objects.

This version of the constructor provides complete control over all aspects of the status item's behaviour. Where this flexibility is not required programmers should use one of the more convenient forms of the constructor.

Once created the status item will remain dormant until activated via the activate method.

Parameters:
xClass - reference to the class file associated with the class instance parameterized type.
xHelperClass - reference to the class file associated with the class which can translate between the parameterized type and a CORBA Any .
corbaName - CorbaName specifying the name of the StatusItem and the location of the CORBA Naming Service on which it is to be registered.
statusItemPublicationPolicy - reference to an object that will define the policies to be used when publishing the status item's data.
statusItemDescriptorIdl - reference to an object specifying the descriptor information.
Throws:
java.lang.NullPointerException - if any reference parameter was null.
java.lang.IllegalArgumentException - if the specified helper class did not contain appropriate method signatures for translating between type and a Corba Any.
Method Detail

getTypedValue

public X getTypedValue()
Gets the current value of this status item and converts it to the parameterized type on which this class is based.

Returns:
the current value

setValue

public void setValue(X newValue)
Sets the value of this status item, leaving its boolean attributes unchanged.

If previously the value of the status item was in error then the invocation of this method will clear the error condition and reset the active and exceptional attributes.

The invocation of this method will NOT incur the cost of a remote call. Instead the new value will be published to interested third parties on separate multiple threads.

Parameters:
newValue - V specifying the new value.
Throws:
java.lang.NullPointerException - if the newValue parameter was null.
java.lang.IllegalArgumentException - if the helper class was unable to insert the 'newValue' argument into a CORBA Any.

setValue

public void setValue(X newValue,
                     java.lang.Boolean active,
                     java.lang.Boolean exceptional)
Sets the value of this status item, or the value of one of its boolean attributes.

If previously the value of the status item was in error then the invocation of this method will clear the error condition and reset the state of any boolean attributes whose value is not explicitly specified in this method's argument list (that's to say those specified as being null).

The invocation of this method will NOT incur the cost of a remote call. Instead the new value will be published to interested third parties on separate multiple threads.

Please refer to the es.iac.ing.codeso.status.server package description for further information about the quality-of-service associated with publication.

Parameters:
newValue - V specifying the new value.
active - Boolean specifying the new state for the active attribute. This parameter may be set to null if this attribute does not require manipulation.
exceptional - Boolean specifying the new state for the exceptional attribute. This parameter may be set to null if this attribute does not require manipulation.
Throws:
java.lang.NullPointerException - if the newValue parameter was null.
java.lang.IllegalArgumentException - if the helper class was unable to insert the 'newValue' argument into a CORBA Any.

setValue

public void setValue(StatusItemValueIdl newValue)
Sets the value of this status item based directly on the supplied value object.

The invocation of this method will NOT incur the cost of a remote call. Instead the new value will be published to interested third parties on separate multiple threads.

Please refer to the es.iac.ing.codeso.status.server package description for further information about the quality-of-service associated with publication.

Overrides:
setValue in class StatusItem<StatusItemDescriptorIdl,StatusItemValueIdl>
Parameters:
newValue - reference to the object supplying the new value information.
Throws:
java.lang.NullPointerException - if the newValue parameter was null.