Class LookupTableConverterHolder<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>>
- All Implemented Interfaces:
Findable,IConverter<javax.measure.Quantity<S>,,javax.measure.Quantity<T>> IQuantitiesConverter<S,,T> IQuantityConverter<S,,T> IReloadableQuantitiesConverter<S,T>
An instance of this object is to be created by the Castor system within the ObjectServer due to presence in the main xml file of content of the from:
name The text by which the object can be located using the Finder
columnDataFileName The name of the lookup file. This can be an absolute filename, or a
relative filename (in which case gda.function.columnDataFile.lookupDir will be prepended to
the filename).
The lookup table is to be found in the folder pointed to be LocalProperties.get("gda.function.columnDataFile.lookupDir").
The lookup table is read by the class ColumnDataFile and so must conform to the format that that class requires.
sColumn Zero based index to identify the column that contains the values for the Source
tColumn Zero based index to identify the column that contains the values for the Target
mode Indicates the direction in which the conversion is valid
The object implements findable so it can be found via the Jython script using the command
converter = finder.find("dcm_energy_perp_converter")
The object implements IReloadableQuantitiesConverter so that the lookup table can be re-read using the command:
finder.find("dcm_energy_perp_converter").ReloadConverter
The object implements IQuantitiesConverter so that the object can be referenced by CombinedDOF.
The object implements IQuantityConverter to allow the conversion to be easily tested using the commands:
converter = finder.find("dcm_energy_perp_converter")
import org.jscience.physics.quantities.Quantity as Quantity
q = Quantity.valueOf(-200, converter.AcceptableTargetUnits().get(0))
converter.ToSource(q)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionLookupTableConverterHolder(String name, String columnDataFileName, int sColumn, int tColumn, String modeString) -
Method Summary
Modifier and TypeMethodDescriptionjavax.measure.Quantity<T>[]calculateMoveables(javax.measure.Quantity<S>[] sources, Object[] moveables) Uses the lookup table to calculate values for the moveables given the values in sources.Returns the units in which the targets quantities passed into ToSource can be expressedReturns the units in which the sources quantities passed into calculateMoveables can be expressedCastor function.getMode()Castor function.intCastor function.intCastor function.booleanbooleanbooleanvoidRe-reads the lookup table.voidsetInterpolateNotExtrapolate(boolean interpolateNotExtrapolate) voidCastor function.booleanReturns true is the conversion reverses the sense.javax.measure.Quantity<S> Calculates a value for Source given the value of the targetjavax.measure.Quantity<S>[]Uses the lookup table to calculate values for the sources given the values in targets.toString()javax.measure.Quantity<T> Calculates a value for Target given the value of the sourceMethods inherited from class gda.factory.FindableBase
equals, getName, hashCode
-
Constructor Details
-
LookupTableConverterHolder
public LookupTableConverterHolder(String name, String columnDataFileName, int sColumn, int tColumn, String modeString) - Parameters:
name- The name of the object. This is required to allow the object to be found via the Finder.columnDataFileName- Lookup table filename. The lookup table is to be found in the folder pointed to be LocalProperties.get("gda.function.columnDataFile.lookupDir"). The lookup table is read by the class ColumnDataFile and so must conform to the format that that class requires.sColumn- The column of the lookup table that contains the source values. First column is 0.tColumn- The column of the lookup table that contains the target values. First column is 0.modeString- If not null this is a String that indicates the direction for which the conversion is valid In some circumstances the lookup table is only valid for conversion in one direction e.g. The xvalues all increase but the yvalues show a change in direction.- See Also:
-
-
Method Details
-
getColumnDataFileName
Castor function. - I am using the constructor mapping option for set-methods so that members can be final- Returns:
- Lookup table filename. The lookup table is to be found in the folder pointed to be LocalProperties.get("gda.function.columnDataFile.lookupDir")
-
getSColumn
public int getSColumn()Castor function. - I am using the constructor mapping option for set-methods so that members can be final- Returns:
- The column of the lookup table that contains the source values. First column is 0.
-
getTColumn
public int getTColumn()Castor function. - I am using the constructor mapping option for set-methods so that members can be final- Returns:
- The column of the lookup table that contains the target values. First column is 0.
-
getMode
Castor function. - I am using the constructor mapping option for set-methods so that members can be final- Returns:
- The column of the lookup table that contains the target values. First column is 0.
-
isInterpolateNotExtrapolate
public boolean isInterpolateNotExtrapolate() -
setInterpolateNotExtrapolate
public void setInterpolateNotExtrapolate(boolean interpolateNotExtrapolate) -
setName
Castor function. - This should never be called and will throw an exception if it is. Set or change the name of the object (as defined in XML).- Specified by:
setNamein interfaceFindable- Overrides:
setNamein classFindableBase- Parameters:
name- the object name- Throws:
IllegalArgumentException- See Also:
-
reloadConverter
public void reloadConverter()Re-reads the lookup table. Note that the units of the lookup must not change. Reload its state from any resource on which it may depend e.g. re-read a lookup table.- Specified by:
reloadConverterin interfaceIReloadableQuantitiesConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - See Also:
-
getAcceptableMoveableUnits
Description copied from interface:IQuantitiesConverterReturns the units in which the targets quantities passed into ToSource can be expressed- Specified by:
getAcceptableMoveableUnitsin interfaceIQuantitiesConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- Each element of the array is an array of units that is acceptable for the corresponding target in calls to ToSource
- See Also:
-
getAcceptableUnits
Description copied from interface:IQuantitiesConverterReturns the units in which the sources quantities passed into calculateMoveables can be expressed- Specified by:
getAcceptableUnitsin interfaceIQuantitiesConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- Each element of the array is an array of units that is acceptable for the corresponding source in calls to calculateMoveables
- See Also:
-
calculateMoveables
public javax.measure.Quantity<T>[] calculateMoveables(javax.measure.Quantity<S>[] sources, Object[] moveables) throws Exception Uses the lookup table to calculate values for the moveables given the values in sources.- Specified by:
calculateMoveablesin interfaceIQuantitiesConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Parameters:
sources- Array of values in units of the sources to be converted.moveables- Array ofMoveable- Returns:
- Array of calculated values in units of the moveables
- Throws:
Exception- See Also:
-
toSource
public javax.measure.Quantity<S>[] toSource(javax.measure.Quantity<T>[] targets, Object[] moveables) throws Exception Uses the lookup table to calculate values for the sources given the values in targets.- Specified by:
toSourcein interfaceIQuantitiesConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Parameters:
targets- Array of values in units of the moveables to be converted.moveables- Array ofMoveable- Returns:
- Array of calculated values in units of the source
- Throws:
Exception- See Also:
-
toString
-
getAcceptableSourceUnits
- Specified by:
getAcceptableSourceUnitsin interfaceIQuantityConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- AcceptableSourceUnits
- See Also:
-
getAcceptableTargetUnits
- Specified by:
getAcceptableTargetUnitsin interfaceIQuantityConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- AcceptableTargetUnits
- See Also:
-
toSource
Description copied from interface:IConverterCalculates a value for Source given the value of the target -
toTarget
Description copied from interface:IConverterCalculates a value for Target given the value of the source -
sourceMinIsTargetMax
public boolean sourceMinIsTargetMax()Description copied from interface:IConverterReturns true is the conversion reverses the sense. So that to get the max of the source you convert the min of the target and vice versa- Specified by:
sourceMinIsTargetMaxin interfaceIConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- true is the conversion reverses the sense.
- See Also:
-
handlesStoT
public boolean handlesStoT()- Specified by:
handlesStoTin interfaceIQuantityConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- true if the converter converts from S to T
-
handlesTtoS
public boolean handlesTtoS()- Specified by:
handlesTtoSin interfaceIQuantityConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- true if the converter converts from T to S
-