Package net.sf.freecol.common.option
Class StringOption
- java.lang.Object
-
- net.sf.freecol.common.model.FreeColObject
-
- net.sf.freecol.common.model.FreeColSpecObject
-
- net.sf.freecol.common.option.AbstractOption<java.lang.String>
-
- net.sf.freecol.common.option.StringOption
-
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Comparable<FreeColObject>
,ObjectWithId
,Option<java.lang.String>
public class StringOption extends AbstractOption<java.lang.String>
Represents an option that can be a string selected from a list of possible values (choices).
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
CHOICE_TAG
private java.util.List<java.lang.String>
choices
A list of choices to provide to the UI.private static java.util.logging.Logger
logger
static java.lang.String
TAG
private java.lang.String
value
The value of this option.-
Fields inherited from class net.sf.freecol.common.option.AbstractOption
ACTION_TAG, DEFAULT_VALUE_TAG, isDefined
-
Fields inherited from class net.sf.freecol.common.model.FreeColObject
ARRAY_SIZE_TAG, DEFAULT_CLASS_INDEX, fcoComparator, ID_ATTRIBUTE_TAG, PARTIAL_ATTRIBUTE_TAG, VALUE_TAG
-
-
Constructor Summary
Constructors Constructor Description StringOption(java.lang.String id, Specification specification)
Creates a newStringOption
.StringOption(Specification specification)
Creates a newStringOption
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringOption
cloneOption()
Clone this option.java.util.List<java.lang.String>
getChoices()
Get the list of string choices.java.lang.String
getValue()
Gets the value of this option.java.lang.String
getXMLTagName()
Get the serialization tag for this object.protected void
readChild(FreeColXMLReader xr)
Reads a single child object.protected void
readChildren(FreeColXMLReader xr)
Reads the children of this object from an XML stream.void
setChoices(java.util.List<java.lang.String> newChoices)
Set the choices.void
setValue(java.lang.String value)
Sets the value of this option.protected void
setValue(java.lang.String valueString, java.lang.String defaultValueString)
Sets the value of this option from the given string representation.java.lang.String
toString()
protected void
writeAttributes(FreeColXMLWriter xw)
Write the attributes of this object to a stream.protected void
writeChildren(FreeColXMLWriter xw)
Write the children of this object to a stream.-
Methods inherited from class net.sf.freecol.common.option.AbstractOption
generateChoices, getEnabledBy, getGroup, isNullValueOK, readAttributes, readOption, setGroup, setValues
-
Methods inherited from class net.sf.freecol.common.model.FreeColSpecObject
copyIn, getSpecification, setSpecification
-
Methods inherited from class net.sf.freecol.common.model.FreeColObject
addAbility, addFeatures, addModifier, addPropertyChangeListener, addPropertyChangeListener, apply, apply, applyModifiers, applyModifiers, arrayKey, compareIds, compareTo, containsAbilityKey, containsModifierKey, copy, copy, copy, copy, copyInCast, dumpObject, equals, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAbilities, getAbilities, getAbilities, getAbilities, getClassIndex, getDefenceModifiers, getDisplayObject, getFeatureContainer, getFreeColObjectClass, getFreeColObjectClassByName, getGame, getId, getIdNumber, getIdType, getIdTypeByName, getModifiers, getModifiers, getModifiers, getModifiers, getObjectClassIndex, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getSortedAbilities, getSortedModifiers, getSuffix, getSuffix, hasAbility, hasAbility, hasAbility, hashCode, hasListeners, hasModifier, hasModifier, hasModifier, idEquals, invokeMethod, logFreeColObjects, readFromXML, readFromXMLPartial, removeAbilities, removeAbility, removeFeatures, removeModifier, removeModifiers, removePropertyChangeListener, removePropertyChangeListener, save, save, save, save, serialize, serialize, serialize, serialize, setGame, setId, toXML, toXML, toXMLPartial, toXMLPartial
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.freecol.common.ObjectWithId
getId
-
Methods inherited from interface net.sf.freecol.common.option.Option
readFromXML, toXML
-
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
TAG
public static final java.lang.String TAG
- See Also:
- Constant Field Values
-
value
private java.lang.String value
The value of this option.
-
choices
private final java.util.List<java.lang.String> choices
A list of choices to provide to the UI.
-
CHOICE_TAG
private static final java.lang.String CHOICE_TAG
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
StringOption
public StringOption(Specification specification)
Creates a newStringOption
.- Parameters:
specification
- TheSpecification
to refer to.
-
StringOption
public StringOption(java.lang.String id, Specification specification)
Creates a newStringOption
.- Parameters:
id
- The object identifier.specification
- TheSpecification
to refer to.
-
-
Method Detail
-
getChoices
public final java.util.List<java.lang.String> getChoices()
Get the list of string choices.- Returns:
- The list of choices.
-
setChoices
public final void setChoices(java.util.List<java.lang.String> newChoices)
Set the choices.- Parameters:
newChoices
- The new list of choices.
-
cloneOption
public StringOption cloneOption()
Clone this option.- Specified by:
cloneOption
in interfaceOption<java.lang.String>
- Specified by:
cloneOption
in classAbstractOption<java.lang.String>
- Returns:
- A clone of this option.
-
getValue
public java.lang.String getValue()
Gets the value of this option.- Specified by:
getValue
in interfaceOption<java.lang.String>
- Specified by:
getValue
in classAbstractOption<java.lang.String>
- Returns:
- The value of this
Option
.
-
setValue
public void setValue(java.lang.String value)
Sets the value of this option.- Specified by:
setValue
in interfaceOption<java.lang.String>
- Specified by:
setValue
in classAbstractOption<java.lang.String>
- Parameters:
value
- The new value of thisOption
.
-
setValue
protected void setValue(java.lang.String valueString, java.lang.String defaultValueString)
Sets the value of this option from the given string representation. Both parameters must not be null at the same time. This method does nothing. Override it if the option has a suitable string representation.- Overrides:
setValue
in classAbstractOption<java.lang.String>
- Parameters:
valueString
- The string representation of the value of thisOption
.defaultValueString
- The string representation of the default value of thisOption
.
-
writeAttributes
protected void writeAttributes(FreeColXMLWriter xw) throws javax.xml.stream.XMLStreamException
Write the attributes of this object to a stream. To be overridden if required by any object that has attributes and uses the toXML(FreeColXMLWriter, String) call.- Overrides:
writeAttributes
in classAbstractOption<java.lang.String>
- Parameters:
xw
- TheFreeColXMLWriter
to write to.- Throws:
javax.xml.stream.XMLStreamException
- if there are any problems writing to the stream.
-
writeChildren
protected void writeChildren(FreeColXMLWriter xw) throws javax.xml.stream.XMLStreamException
Write the children of this object to a stream. To be overridden if required by any object that has children and uses the toXML(FreeColXMLWriter, String) call.- Overrides:
writeChildren
in classFreeColObject
- Parameters:
xw
- TheFreeColXMLWriter
to write to.- Throws:
javax.xml.stream.XMLStreamException
- if there are any problems writing to the stream.
-
readChildren
protected void readChildren(FreeColXMLReader xr) throws javax.xml.stream.XMLStreamException
Reads the children of this object from an XML stream.- Overrides:
readChildren
in classFreeColObject
- Parameters:
xr
- TheFreeColXMLReader
to read from.- Throws:
javax.xml.stream.XMLStreamException
- if there is a problem reading the stream.
-
readChild
protected void readChild(FreeColXMLReader xr) throws javax.xml.stream.XMLStreamException
Reads a single child object. Subclasses must override to read their enclosed elements. This particular instance of the routine always throws XMLStreamException because we should never arrive here. However it is very useful to always call super.readChild() when an unexpected tag is encountered, as the exception thrown here provides some useful debugging context.- Overrides:
readChild
in classFreeColObject
- Parameters:
xr
- TheFreeColXMLReader
to read from.- Throws:
javax.xml.stream.XMLStreamException
- if there is a problem reading the stream.
-
getXMLTagName
public java.lang.String getXMLTagName()
Get the serialization tag for this object.- Specified by:
getXMLTagName
in classFreeColObject
- Returns:
- The tag.
-
toString
public java.lang.String toString()
- Specified by:
toString
in interfaceOption<java.lang.String>
- Overrides:
toString
in classFreeColObject
-
-