uk.ac.starlink.ttools.plot2.config
Class ConfigKey<T>

java.lang.Object
  extended by uk.ac.starlink.ttools.plot2.config.ConfigKey<T>
Direct Known Subclasses:
BooleanConfigKey, ChoiceConfigKey, CombinationConfigKey, DoubleConfigKey, HiddenConfigKey, IntegerConfigKey, OptionConfigKey, StringConfigKey, SubrangeConfigKey, TimeConfigKey

public abstract class ConfigKey<T>
extends Object

Typed key for use in a ConfigMap. As well as serving as a key in ConfigMap, this class has methods to allow a command-line or graphical interface to be constructed for the corresponding values automatically.

Note that this class does not sport the Equality annotation. A ConfigKey is normally considered equal only to itself, not to other similarly-named ConfigKeys.

Since:
22 Feb 2013
Author:
Mark Taylor

Constructor Summary
ConfigKey(ConfigMeta meta, Class<T> clazz, T dflt)
          Constructor.
 
Method Summary
 T cast(Object value)
          Converts an object to the value type of this key.
abstract  Specifier<T> createSpecifier()
          Constructs a graphical control with which the user can specify a suitable value for association with this key.
 T getDefaultValue()
          Returns the default value associated with this key.
 ConfigMeta getMeta()
          Returns metadata about this key.
 Class<T> getValueClass()
          Returns the type of value described by this key.
abstract  T stringToValue(String txt)
          Decodes a string value to the value type of this key.
 String toString()
           
abstract  String valueToString(T value)
          Reports a value as a string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ConfigKey

public ConfigKey(ConfigMeta meta,
                 Class<T> clazz,
                 T dflt)
Constructor.

Parameters:
meta - metadata describing this key
clazz - value type for the values indexed by this key
dflt - default value when key not present in map
Method Detail

getMeta

public ConfigMeta getMeta()
Returns metadata about this key.

Returns:
metadata

getValueClass

public Class<T> getValueClass()
Returns the type of value described by this key.

Returns:
class

getDefaultValue

public T getDefaultValue()
Returns the default value associated with this key. This value may be used when no value is explicitly supplied for this key.

Returns:
default value

cast

public T cast(Object value)
Converts an object to the value type of this key.

Parameters:
value - untyped value
Returns:
typed value

stringToValue

public abstract T stringToValue(String txt)
                         throws ConfigException
Decodes a string value to the value type of this key. An empty string should be interpreted as a null value, but this may cause an exception if null is not a permissible value for this key.

Parameters:
txt - string representation of value
Returns:
value
Throws:
ConfigException

valueToString

public abstract String valueToString(T value)
Reports a value as a string. If at all possible the roundtripping should be possible, so stringToValue(valueToString(v)).equals(v). A null value, if permitted, should be represented as an empty string.

Parameters:
value - possible value associated with this key
Returns:
string representation

createSpecifier

public abstract Specifier<T> createSpecifier()
Constructs a graphical control with which the user can specify a suitable value for association with this key.

Returns:
new specifier

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.