fr.esrf.tangoatk.core.attribute
Class AttributeFactory

java.lang.Object
  extended by fr.esrf.tangoatk.core.AEntityFactory
      extended by fr.esrf.tangoatk.core.attribute.AttributeFactory
All Implemented Interfaces:
fr.esrf.TangoDs.TangoConst, java.io.Serializable
Direct Known Subclasses:
PolledAttributeFactory

public class AttributeFactory
extends AEntityFactory

AttributeFactory is an extension of AEntityFactory which takes care of instantiating Attribute objects. It is a Singleton, so please use getInstance to instantiate the Factory.

See Also:
Serialized Form

Field Summary
protected  java.lang.String[] attNames
           
protected  java.util.Vector<AAttribute> attributes
           
 
Fields inherited from interface fr.esrf.TangoDs.TangoConst
ACCESS_READ, ACCESS_SERVICE, ACCESS_WRITE, ARCHIVE_EVENT, ATT_CONF_EVENT, Attr_AdmName, Attr_Description, Attr_Name, Attr_State, Attr_Status, Attr_Unknown, ATTRIBUTE, BY_CLASS, BY_DEVICE, BY_PROCESS, CHANGE_EVENT, COMMAND, CONTROL_SYSTEM, DATA_READY_EVENT, DEFAULT_LOCK_VALIDITY, eventNames, LOGGING_CONSOLE_TARGET, LOGGING_CONSOLE_TARGET_ID, LOGGING_DEBUG, LOGGING_DEF_RFT, LOGGING_DEVICE_TARGET, LOGGING_DEVICE_TARGET_ID, LOGGING_ERROR, LOGGING_FATAL, LOGGING_FILE_TARGET, LOGGING_FILE_TARGET_ID, LOGGING_INFO, LOGGING_LEVELS, LOGGING_MAX_RFT, LOGGING_MIN_RFT, LOGGING_OFF, LOGGING_SEPARATOR, LOGGING_UNKNOWN_TARGET_ID, LOGGING_WARN, NO_SYNC, NOT_STATELESS, NotANumber, Op_BlackBox, Op_Command, Op_Command_2, Op_Command_inout, Op_Command_inout_2, Op_Command_inout_history_2, Op_Command_list, Op_Command_list_2, Op_Get_Attr_Config, Op_Get_Attr_Config_2, Op_Info, Op_Ping, Op_Read_Attr, Op_Read_Attr_2, Op_Read_Attr_history_2, Op_Set_Attr_Config, Op_Unknown, Op_Write_Attr, PERIODIC_EVENT, QUALITY_EVENT, Req_Attribute, Req_Operation, Req_Unknown, SERVICE_PROP_NAME, STATELESS, Tango_AllAttr, Tango_AllAttr_3, Tango_AlrmValueNotSpec, Tango_AssocWritNotSpec, Tango_AttrDataFormatName, Tango_CLNT_TIMEOUT, Tango_CmdArgTypeName, Tango_CONST_DEV_STRING, Tango_DbObjName, Tango_DEFAULT_POLL_OLD_FACTOR, Tango_DEFAULT_TIMEOUT, Tango_DEFAULT_TIMEOUT_SEC, Tango_DefaultBlackBoxDepth, Tango_DefaultDocUrl, Tango_DefaultPollRingDepth, Tango_DefaultWritableProp, Tango_DELTA_T, Tango_DescNotSet, Tango_DescNotSpec, Tango_DEV_BOOLEAN, Tango_DEV_CHAR, Tango_DEV_DOUBLE, Tango_DEV_ENCODED, Tango_DEV_FLOAT, Tango_DEV_INT, Tango_DEV_LONG, Tango_DEV_LONG64, Tango_DEV_SHORT, Tango_DEV_STATE, Tango_DEV_STRING, Tango_DEV_UCHAR, Tango_DEV_ULONG, Tango_DEV_ULONG64, Tango_DEV_USHORT, Tango_DEV_VOID, Tango_DevStateName, Tango_DEVVAR_CHARARRAY, Tango_DEVVAR_DOUBLEARRAY, Tango_DEVVAR_DOUBLESTRINGARRAY, Tango_DEVVAR_FLOATARRAY, Tango_DEVVAR_LONG64ARRAY, Tango_DEVVAR_LONGARRAY, Tango_DEVVAR_LONGSTRINGARRAY, Tango_DEVVAR_SHORTARRAY, Tango_DEVVAR_STRINGARRAY, Tango_DEVVAR_ULONG64ARRAY, Tango_DEVVAR_ULONGARRAY, Tango_DEVVAR_USHORTARRAY, Tango_DevVersion, Tango_DISCARD_THRESHOLD, Tango_DispUnitNotSpec, Tango_DSDeviceDomain, Tango_EXPERT_ATTR, Tango_EXPERT_CMD, Tango_FormatNotSpec, Tango_InitialOutput, Tango_LabelNotSpec, TANGO_LOG_PATH, Tango_MAX_TRANSFER_SIZE, Tango_MaxServerNameLength, Tango_MIN_POLL_PERIOD, Tango_OPERATOR_ATTR, Tango_OPERATOR_CMD, Tango_POLL_ADD_OBJ, Tango_POLL_ATTR, Tango_POLL_CMD, Tango_POLL_REM_DEV, Tango_POLL_REM_OBJ, Tango_POLL_START, Tango_POLL_STOP, Tango_POLL_UPD_PERIOD, Tango_PollAttribute, Tango_PollCommand, Tango_QualityName, Tango_REL_1, Tango_REL_2, Tango_ResNotDefined, Tango_StdUnitNotSpec, Tango_SysProperty, Tango_TG_IMP_MINOR_DEVFAILED, Tango_TG_IMP_MINOR_NON_DEVFAILED, Tango_TG_IMP_MINOR_TO, Tango_TgLibVers, Tango_UnitNotSpec, USER_EVENT
 
Constructor Summary
protected AttributeFactory()
          Creates a new AttributeFactory instance.
 
Method Summary
protected  void buildNames(java.lang.String fqname, int insertionPos)
           
 IAttribute getAttribute(java.lang.String fqname)
          Returns an Attribute corresponding to the given name.
protected  AAttribute getAttributeOfType(Device device, fr.esrf.TangoApi.AttributeInfoEx config)
          getAttributeOfType figures out what type of attribute is demanded, and deletates the work of instantiating the attribute to getScalar, getSpectrum, or getImage.
 AAttribute[] getAttributes()
          Returns all attributes belonging to this factory.
static AttributeFactory getInstance()
          getInstance returns an instance of the AttributeFactory.
protected  IEntity getSingleEntity(java.lang.String fqname, Device device)
          getSingleEntity returns an attribute corresponding to the name given in the first parameter.
 int getSize()
          Returns the number of entity present in this factory.
 java.lang.String getVersion()
          Return release information of this factory.
protected  java.util.List<IEntity> getWildCardEntities(java.lang.String name, Device device)
          getWildCardEntities
protected  AAttribute initAttribute(Device device, fr.esrf.TangoApi.AttributeInfoEx config, int insertionPos, java.lang.String fqname)
          initAttribute ask getAttributeOfType for an AAttribute of the type given in the AttributeInfo passed as parameter, and then calls init() on the attribute
 boolean isAttribute(java.lang.String fqname)
          Check wether the given name correspond to an existing attribute.
 
Methods inherited from class fr.esrf.tangoatk.core.AEntityFactory
extractDeviceName, extractDeviceNameAdvanced, extractEntityName, getDevice, getEntities, getFQName, isWildCard
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

attributes

protected java.util.Vector<AAttribute> attributes

attNames

protected java.lang.String[] attNames
Constructor Detail

AttributeFactory

protected AttributeFactory()
Creates a new AttributeFactory instance. Do not use this.

See Also:
getInstance()
Method Detail

getInstance

public static AttributeFactory getInstance()
getInstance returns an instance of the AttributeFactory. There will be only one AttributeFactory per running instance of the JVM.

Returns:
an AttributeFactory value

getAttributes

public AAttribute[] getAttributes()
Returns all attributes belonging to this factory.


getSize

public int getSize()
Description copied from class: AEntityFactory
Returns the number of entity present in this factory.

Specified by:
getSize in class AEntityFactory
Returns:
Number of entity

getWildCardEntities

protected java.util.List<IEntity> getWildCardEntities(java.lang.String name,
                                                      Device device)
                                               throws fr.esrf.Tango.DevFailed
getWildCardEntities

Specified by:
getWildCardEntities in class AEntityFactory
Parameters:
name - a String value containing the name of the attributes to be instantiated.
device - a Device value containging the device that the attribute belongs to
Returns:
a List value containing the corresponding IAttributes
Throws:
fr.esrf.Tango.DevFailed - if an error occurs
See Also:
IAttribute

getSingleEntity

protected IEntity getSingleEntity(java.lang.String fqname,
                                  Device device)
                           throws fr.esrf.Tango.DevFailed
getSingleEntity returns an attribute corresponding to the name given in the first parameter. If such an attribute already exists, the existing attribute is returned. Otherwise it is created.

Specified by:
getSingleEntity in class AEntityFactory
Parameters:
fqname - a String value containing the EntityName fully qualified with device name.
device - a Device value the device
Returns:
an IEntity value
Throws:
fr.esrf.Tango.DevFailed - if an error occurs

getAttribute

public IAttribute getAttribute(java.lang.String fqname)
                        throws ConnectionException,
                               fr.esrf.Tango.DevFailed
Returns an Attribute corresponding to the given name. If such an attribute already exists, the existing attribute is returned. Otherwise it is created.

Parameters:
fqname - a String value containing the EntityName fully qualified with device name.
Returns:
null if the type of the IEntity is not AAttribute, a valid entity otherwise.
Throws:
ConnectionException
fr.esrf.Tango.DevFailed

isAttribute

public boolean isAttribute(java.lang.String fqname)
Check wether the given name correspond to an existing attribute.

Parameters:
fqname - Full entity name
Returns:
True if the attribute exists.

initAttribute

protected AAttribute initAttribute(Device device,
                                   fr.esrf.TangoApi.AttributeInfoEx config,
                                   int insertionPos,
                                   java.lang.String fqname)
initAttribute ask getAttributeOfType for an AAttribute of the type given in the AttributeInfo passed as parameter, and then calls init() on the attribute

Parameters:
device - a Device value
config - an AttributeInfo value
insertionPos - Insertion postion of this new attribute in the global list
fqname - Full entity name (can include host and port)
Returns:
an AAttribute value

buildNames

protected void buildNames(java.lang.String fqname,
                          int insertionPos)

getAttributeOfType

protected AAttribute getAttributeOfType(Device device,
                                        fr.esrf.TangoApi.AttributeInfoEx config)
getAttributeOfType figures out what type of attribute is demanded, and deletates the work of instantiating the attribute to getScalar, getSpectrum, or getImage. The typeinference is based on the value of AttributeConfig.data_format.

Parameters:
device - a Device value
config - an AttributeInfo value
Returns:
an AAttribute value
Throws:
java.lang.IllegalArgumentException - if the format is unknown.

getVersion

public java.lang.String getVersion()
Description copied from class: AEntityFactory
Return release information of this factory.

Specified by:
getVersion in class AEntityFactory
Returns:
Release information.