Class CoupledConverterHolder<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>,I extends javax.measure.Quantity<I>>
- 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:
The sourceConverterName value is the name of a findable implementor of IReloadableQuantitiesConverter to be used to perform the first conversion between the Source and an intermediate quantity.
The targetConverterName value is the name of a findable implementor of IReloadableQuantitiesConverter to be used to convert between the intermediate quantity and the Target.
The object implements findable so it can be found via the Jython script using the command
converter = finder.find("BeamLineEnergy_DCM_Perp_converter")
The object implements IReloadableQuantitiesConverter so that the dependent converters can be re-loaded using the command:
finder.find("BeamLineEnergy_DCM_Perp_converter").ReloadConverter
The object implements IQuantitiesConverter so that the object can be referenced by CombinedDOF.
-
Constructor Summary
ConstructorsConstructorDescriptionCoupledConverterHolder(String name, IReloadableQuantitiesConverter<S, I> sourceConverter, IReloadableQuantitiesConverter<I, T> targetConverter) Creates a coupled converter holder which uses the specified source and target converters.CoupledConverterHolder(String name, String sourceConverterName, String targetConverterName) -
Method Summary
Modifier and TypeMethodDescriptionjavax.measure.Quantity<T>[]calculateMoveables(javax.measure.Quantity<S>[] sources, Object[] moveables) Calculates an array of values in units of the source given an array of quantities in units of the sourcestatic <Q extends javax.measure.Quantity<Q>,R extends javax.measure.Quantity<R>>
IQuantitiesConverter<Q, R> FindQuantitiesConverter(String converterName) static <Q extends javax.measure.Quantity<Q>,R extends javax.measure.Quantity<R>>
IReloadableQuantitiesConverter<Q, R> FindReloadableQuantitiesConverter(String converterName) 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 expressedstatic <Q extends javax.measure.Quantity<Q>,R extends javax.measure.Quantity<R>>
IQuantityConverter<Q, R> booleanbooleanvoidReload its state from any resource on which it may depend e.g.voidSet or change the name of the object (as defined in XML).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>[]Calculates an array of values in units of the source given an array of quantities in units of the moveablestoString()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
-
CoupledConverterHolder
- Parameters:
name- The name of the converter by which the object can be found using the FindersourceConverterName- The name of a findable implementor of IReloadableQuantitiesConverter to be used to perform the first conversion between the Source and an intermediate quantity.targetConverterName- The name of a findable implementor of IReloadableQuantitiesConverter to be used to convert between the intermediate quantity and the Target.
-
CoupledConverterHolder
public CoupledConverterHolder(String name, IReloadableQuantitiesConverter<S, I> sourceConverter, IReloadableQuantitiesConverter<I, T> targetConverter) Creates a coupled converter holder which uses the specified source and target converters.- Parameters:
name- the converter namesourceConverter- the source convertertargetConverter- the target converter
-
-
Method Details
-
getSourceConverterName
- Returns:
- sourceConverterName
-
getTargetConverterName
- Returns:
- targetConverterName
-
setName
Description copied from interface:FindableSet or change the name of the object (as defined in XML).- Specified by:
setNamein interfaceFindable- Overrides:
setNamein classFindableBase- Parameters:
name- the object name
-
reloadConverter
public void reloadConverter()Description copied from interface:IReloadableQuantitiesConverterReload 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>>
-
calculateMoveables
public javax.measure.Quantity<T>[] calculateMoveables(javax.measure.Quantity<S>[] sources, Object[] moveables) throws Exception Description copied from interface:IQuantitiesConverterCalculates an array of values in units of the source given an array of quantities in units of the source- 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
-
toSource
public javax.measure.Quantity<S>[] toSource(javax.measure.Quantity<T>[] targets, Object[] moveables) throws Exception Description copied from interface:IQuantitiesConverterCalculates an array of values in units of the source given an array of quantities in units of the moveables- 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
-
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
-
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
-
FindReloadableQuantitiesConverter
public static <Q extends javax.measure.Quantity<Q>,R extends javax.measure.Quantity<R>> IReloadableQuantitiesConverter<Q,R> FindReloadableQuantitiesConverter(String converterName) - Parameters:
converterName-- Returns:
- IReloadableQuantitiesConverter
-
FindQuantitiesConverter
public static <Q extends javax.measure.Quantity<Q>,R extends javax.measure.Quantity<R>> IQuantitiesConverter<Q,R> FindQuantitiesConverter(String converterName) - Parameters:
converterName-- Returns:
- IQuantitiesConverter
-
toString
-
getIQuantityConverter
public static <Q extends javax.measure.Quantity<Q>,R extends javax.measure.Quantity<R>> IQuantityConverter<Q,R> getIQuantityConverter(Object obj) - Parameters:
obj-- Returns:
- IQuantityConverter
-
getAcceptableSourceUnits
- Specified by:
getAcceptableSourceUnitsin interfaceIQuantityConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- AcceptableSourceUnits
-
getAcceptableTargetUnits
- Specified by:
getAcceptableTargetUnitsin interfaceIQuantityConverter<S extends javax.measure.Quantity<S>,T extends javax.measure.Quantity<T>> - Returns:
- AcceptableTargetUnits
-
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.
-
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
-