package org.atdl4j.data; import org.atdl4j.fixatdl.layout.ControlT; /** * An interface for an algorithmic parameter container class. Classes which implement * this interface hold parameter descriptor data but do not store a value (see the * Atdl4jWidget class which stores the underlying FIX value.) */ public interface ControlTypeConverter<E extends Comparable<?>> { /** * Converts Control's value to Parameter value. * Used by: - SWTClockWidget.getParameterValue() - AbstractHiddenFieldWidget.getParameterValue() - SWTSpinnerWidget.getParameterValue() - SWTTextFieldWidget.getParameterValue() * @param value * @return */ public Object convertControlValueToParameterValue(Object value); /** * Converts Parameter value to Control value * Used by: - AbstractAtdl4jWidget.applyConstValue() - AbstractAtdl4jWidget.setFIXValue() - AbstractStrategyUI.setFIXMessage() * @param value * @param aControl * @return */ // 7/11/2010 Scott Atwell need to handle CheckBox control checkedEnumRef and uncheckedEnumRef (eg "100" -> true, "0" -> false) public E convertParameterValueToControlValue(Object value); public E convertParameterValueToControlValue(Object value, ControlT aControl); /** * Converts Control's value to Comparable for Control * Used by: - AbstractAtdl4jWidget.convertStringToControlComparable() - ValueOperatorValidationRule.validate() - AbstractAtdl4jWidget.getControlValueAsComparable() - ValueOperatorValidationRule.validate() * @param value * @return */ public E convertControlValueToControlComparable(Object value); /** * Converts aString (eg Control/@initValue or StateRule/@value) to Control value * Used by: - AbstractAtdl4jWidget.convertStringToControlComparable() - ValueOperatorValidationRule.validate() - AbstractAtdl4jWidget.setValueAsString(String) - SWTStateListener.setBehaviorAsStateRule() * @param aString * @return */ public E convertStringToControlValue(String aString); /** * @return the ParameterTypeConverter if Control has a Parameter */ public ParameterTypeConverter<?> getParameterTypeConverter(); /** * Returns an Object that is an instanceof the Parameter's base data type (eg String, BigDecimal, DateTime, etc) * Returns aDatatypeIfNull if Parameter is null * @param aDatatypeIfNull * @return */ public Class<?> getParameterDatatype( Class<?> aClassIfNull ); }