Class TLcdEditableMS2525bObject

All Implemented Interfaces:
ILcdDataObject, ILcdBounded, ILcdCurve, ILcdPointList, ILcdPointList2, ILcdPolyline, ILcdPolypoint, ILcdShape, ILcd2DEditablePointList, ILcd2DEditablePolyline, ILcd2DEditablePolypoint, ILcd2DEditableShape, ILcdEditableMS2525bCoded, ILcdEditableMS2525bShape, ILcdMS2525bCoded, ILcdMS2525bShape, ILcdCache, ILcdCloneable, ILcdFeatured, ILcdInvalidateable, ILcdOrientationSettable, ILcdOriented, Serializable, Cloneable

A general representation of an editable MIL-STD 2525 symbol. The symbol's code (SIDC) can be retrieved through getMS2525Code(); the used symbology standard can be retrieved through getMS2525Standard().

Symbology

The used standard can be supplied at construction time by passing an ELcdMS2525Standard instance. Note that although this class (including its documentation) and many other classes / methods have an explicit reference to MIL-STD 2525b, it can be equally used for all symbology standards defined in ELcdMS2525Standard.

If the symbology standard is not explicitly supplied at construction time, the used standard is defined by the boolean System property com.luciad.symbology.milstd2525b.ms2525c. If false, MIL-STD 2525b is used; otherwise, MIL-STD 2525c is used.

Symbol code and modifiers

The symbol code can be supplied at construction time, or changed afterwards. Convenience methods are available to enumerate, retrieve, and change parts of the symbol code. This class also adds some convenience getters and setters for some common modifiers, such as the status.
Refer to TLcdMS2525bNode and TLcdMS2525bEchelonNode for more information on the symbol hierarchy and echelons, and to ILcdMS2525bCoded for the superset of possible SIDC modifier names.

Text modifiers

Next to its geometry representation and symbol code, a symbol can have other textual properties such as UniqueDesignation or AdditionalInformation. These modifiers can be enumerated, retrieved and changed as well. Also, through the interface ILcdDataObject, this class provides generic access to all its properties. The available properties can be found in the object's data type, accessible through the method getDataType(). A specific property can be retrieved through the method getValue(com.luciad.datamodel.TLcdDataProperty). See also ILcdMS2525bCoded for the superset of possible text modifier names.

Geometry

This class extends from TLcdLonLatPolyline, which is used to define the geometry of the symbol. The (minimal) number of points in the polyline depends on the symbol code. This number can be queried through the method getPointList(), which returns an instance of the type ILcdRestrictedLengthPointList. This interface provides a method getMinPointCount(), which returns the minimal number of points needed to have a valid symbol.

To quickly check whether this symbol is a point symbol or a line/polyline/polygon (two points or more), one can use the method isLine().

Some symbols defined in the MIL-STD 2525b specification are represented by a line with a width. This width can be retrieved or set through the methods getWidth() and setWidth(double). A common example of such symbols are the arrow symbols, which use the width property to define the distance between the axis of the arrow and the edge of the bounding box around the arrow. Note that this property is not taken into account for points, lines and general areas.

See Also:
  • Constructor Details

    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject()
      Creates a new MIL-STD 2525b object using the default symbol code. The object's geometry will contain as many points as needed for the symbol code.
      See Also:
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(ELcdMS2525Standard aStandard)
      Creates a new MIL-STD 2525 object for the given symbology version. The resulting MIL-STD 2525 object will use the default symbol code for the given symbology version. The object's geometry will contain as many points as needed for the symbol code.
      Parameters:
      aStandard - a MIL-STD 2525 version
      See Also:
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(String aMS2525bCode)
      Creates a new MIL-STD 2525b object with the given code. The object's geometry will contain as many points as needed.
      Parameters:
      aMS2525bCode - a 15 character code which describes the military functionality of the shape. Characters on positions which are not explicitly needed should be the '\0' character. The character '-' will be accepted but it will be replaced by the '\0' character. Subsequent calls to getMS2525Code() will not contain '-' characters.
      Throws:
      IllegalArgumentException - when the code passed is null or is not part of the default MIL-STD 2525 standard
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(String aMS2525bCode, ELcdMS2525Standard aStandard)
      Creates a new MIL-STD 2525 object with the given code and version. The object's geometry will contain as many points as needed.
      Parameters:
      aMS2525bCode - a 15 character code which describes the military functionality of the shape. Characters on positions which are not explicitly needed should be the '\0' character. The character '-' will be accepted but it will be replaced by the '\0' character. Subsequent calls to getMS2525Code() will not contain '-' characters.
      aStandard - a MIL-STD 2525 version
      Throws:
      IllegalArgumentException - when the code passed is null or is not part of the given MIL-STD 2525 standard
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(double aLon, double aLat)
      Creates a MIL-STD 2525b object with the default code. The first point is placed at the given coordinates. If more points are required by the default code, they will be added to the point list this shape is based on.
      Parameters:
      aLon - the longitude of the first point of the object.
      aLat - the latitude of the first point of the object.
      See Also:
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(ILcdPoint aPoint)
      Creates a MIL-STD 2525b object with the default code. The first point is placed at the location of the given point. If more points are required by the default code, they will be added to the point list this shape is based on.
      Parameters:
      aPoint - the location of the first point representing the object with the default code.
      See Also:
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(double aLon, double aLat, double aHeight)
      Creates a MIL-STD 2525b object with the default code. The first point is placed at the given coordinates. If more points are required by the default code, they will be added to the point list this shape is based on.
      Parameters:
      aLon - the longitude of the first point of the object.
      aLat - the latitude of the first point of the object.
      aHeight - the height of the first point of the object.
      See Also:
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(ILcdMS2525bCoded aMS2525bCoded)
      Creates a MIL-STD 2525b object given an ILcdMS2525bCoded object. Both the code and the text modifiers are copied from aMS2525bCoded.
      Parameters:
      aMS2525bCoded - a MIL-STD 2525b object.
    • TLcdEditableMS2525bObject

      public TLcdEditableMS2525bObject(String aMS2525bCode, ILcdPoint[] aPoints)
      Creates a MIL-STD 2525b object with the given code. Depending on the representation of the symbol with given code, points are added to the point list or not all points of the point list are used.
      Parameters:
      aMS2525bCode - a 15 character code which describes the military functionality of the shape. Characters on positions which are not explicitly needed should be the '\0' character. The character '-' will be accepted but it will be replaced by the '\0' character. Subsequent calls to getMS2525Code() will not contain '-' characters. If the code is null, it will be replaced by the default code.
      aPoints - the points whose coordinates are used to locate the point list. Only as many points as needed will be used.
  • Method Details

    • getDefaultMS2525bCode

      @Deprecated public static String getDefaultMS2525bCode()
      Returns the default 15 character MIL-STD 2525 code that is used by the constructor when no code is given.
      Returns:
      the default 15 character MIL-STD 2525 code to use on construction when no code is given.
    • setDefaultMS2525bCode

      @Deprecated public static void setDefaultMS2525bCode(String aDefaultMS2525Code)
      Sets the default MIL-STD 2525 code to use when no code is given on construction.

      Note that this code is not specifically tied to one of the specific MIL-STD 2525 standards defined in ELcdMS2525Standard. The supplied code will be accepted if it is valid according to at least one of these standards. It is thus up to the user to make sure that, if he/she relies on the default code, instances of this class are created according to a compatible symbology standard.

      By default, the code "SUPP-----------" is used, which is defined in all supported MIL-STD 2525 symbology standards.

      Parameters:
      aDefaultMS2525Code - the default MIL-STD 2525 code to use when no code is given on construction.
      Throws:
      IllegalArgumentException - when the code passed is null or isn't a valid MIL-STD 2525 code.
    • canReversePointOrder

      public boolean canReversePointOrder()
      The point order of arrows and lines can be reversed by calling reversePointOrder(). For the other symbols (single point, T shaped, polygon etc.), the point order is always the same. This method ensures if a call to reversePointOrder() is going to have an effect on the symbol or not.
      Returns:
      true if reversePointOrder() can reverse the order of the points of this symbol, false otherwise.
      See Also:
    • reversePointOrder

      public void reversePointOrder()
      Reverses the order of the points of the symbol if the geometry is suitable for this operation.

      For example arrow shaped symbols point to the reverse direction after invoking this method. A symbol should always be checked with canReversePointOrder() before invoking this method. If canReversePointOrder() returns false, this method throws an IllegalStateException

      Note: Each subsequent call to this method reverses the order of the points again.

      Throws:
      IllegalStateException - if canReversePointOrder() returns false for this object
    • setDefaultMS2525Code

      public static void setDefaultMS2525Code(String aDefaultMS2525Code, ELcdMS2525Standard aMS2525Standard)
      Sets the default MIL-STD 2525 code to use when no code is given on construction.

      Note that this code is tied to one of the specific APP-6 standards defined in ELcdMS2525Standard.

      Parameters:
      aDefaultMS2525Code - the default code to use
      aMS2525Standard - the standard for which the default code is used
    • getDefaultMS2525Code

      public static String getDefaultMS2525Code(ELcdMS2525Standard aMS2525Standard)
      Returns the default MIL-STD 2525 code for the given standard that is used by the constructor when no code is given.
      Parameters:
      aMS2525Standard - the standard
      Returns:
      the default MIL-STD 2525 code for the given standard
    • getFeatureCount

      public int getFeatureCount()
      Returns the number of features: 5.
      Specified by:
      getFeatureCount in interface ILcdFeatured
      Returns:
      5, always.
    • getFeature

      public Object getFeature(int aIndex) throws IndexOutOfBoundsException
      Description copied from interface: ILcdFeatured
      Returns the feature Object at the given index.
      Specified by:
      getFeature in interface ILcdFeatured
      Parameters:
      aIndex - a valid feature index.
      Returns:
      the feature Object at the given index.
      Throws:
      IndexOutOfBoundsException - when an index is chosen greater than the result of getFeatureCount.
      See Also:
    • setFeature

      public void setFeature(int aIndex, Object aFeature) throws IllegalArgumentException
      Features cannot be set on this object through this method. Features are set through setMS2525Code(java.lang.String, com.luciad.symbology.milstd2525b.model.ELcdMS2525Standard). This implementation is empty.
      Specified by:
      setFeature in interface ILcdFeatured
      Parameters:
      aIndex - not of importance.
      aFeature - not of importance.
      Throws:
      IllegalArgumentException - This exception is never thrown, the implementation is empty.
      See Also:
    • canSetFeature

      public boolean canSetFeature(int aIndex)
      Features are set through the method setMS2525Code(java.lang.String, com.luciad.symbology.milstd2525b.model.ELcdMS2525Standard). This method will always return false.
      Specified by:
      canSetFeature in interface ILcdFeatured
      Parameters:
      aIndex - not of importance.
      Returns:
      false, always.
    • getPointList

      public ILcdPointList getPointList()
      Returns the point list this shape is based on.

      The returned object implements also ILcdEditableRestrictedLengthPointList and ILcd2DEditablePointList.

      Specified by:
      getPointList in interface ILcdMS2525bShape
      Returns:
      the point list this shape is based on.
    • set2DEditablePointList

      public void set2DEditablePointList(ILcd2DEditablePointList a2DEditablePointList)
      Sets the point list for this shape.
      Overrides:
      set2DEditablePointList in class ALcd2DEditablePolypoint
      Parameters:
      a2DEditablePointList - A point list that implements ILcd2DEditablePointList
    • getWidth

      public double getWidth()
      Description copied from interface: ILcdMS2525bShape
      Returns the buffer width.

      This value is only taken into account when this symbol should be represented by a buffer. In the MIL-STD 2525b specification, these are the arrow symbols; the width property is used to define the width of the bounding box around the arrow.

      Specified by:
      getWidth in interface ILcdMS2525bShape
      Returns:
      the buffer width in meters. This value is only taken into account when the object with this code should be represented by a buffer.
    • setWidth

      public void setWidth(double width)
      Description copied from interface: ILcdEditableMS2525bShape
      Sets the buffer width. This value is only taken into account when this symbol should be represented by a buffer. In the MIL-STD 2525b specification, these are the arrow symbols; the width property is used to define the width of the bounding box around the arrow.
      Specified by:
      setWidth in interface ILcdEditableMS2525bShape
      Parameters:
      width - the new width in meters.
    • isLine

      public boolean isLine()
      Description copied from interface: ILcdMS2525bShape
      Returns whether this object is represented as a line or not.

      When returning false, the symbol is represented by one point. When returning true, the symbol is represented by two or more points, e.g. a polyline, polygon (area symbol) or buffer (arrow symbol).

      Specified by:
      isLine in interface ILcdMS2525bShape
      Returns:
      true when this object should be represented as a line.
    • getMS2525Code

      public String getMS2525Code()
      Description copied from interface: ILcdMS2525bCoded
      Returns the symbol code of the object (SIDC).

      The symbol code has to be interpreted according to the symbology standard used by this object, which can be retrieved through ILcdMS2525bCoded.getMS2525Standard().

      Specified by:
      getMS2525Code in interface ILcdMS2525bCoded
      Returns:
      the symbol code of the object (SIDC).
      See Also:
    • getMS2525Standard

      public ELcdMS2525Standard getMS2525Standard()
      Description copied from interface: ILcdMS2525bCoded
      Returns the symbology standard used by this object.
      Specified by:
      getMS2525Standard in interface ILcdMS2525bCoded
      Returns:
      the symbology standard used by this object.
      See Also:
    • getTextModifierCount

      public int getTextModifierCount()
      Description copied from interface: ILcdMS2525bCoded
      Returns the number of text modifiers for this object in the MIL-STD-2525B standard.
      Specified by:
      getTextModifierCount in interface ILcdMS2525bCoded
      Returns:
      the number of text modifiers for this object in the MIL-STD-2525B standard.
    • getTextModifierKey

      public String getTextModifierKey(int aIndex)
      Description copied from interface: ILcdMS2525bCoded
      Returns the text modifier key at the given index.
      Specified by:
      getTextModifierKey in interface ILcdMS2525bCoded
      Parameters:
      aIndex - the index of key of the text modifier to retrieve.
      Returns:
      the text modifier key at the given index.
      See Also:
    • getTextModifier

      public TLcdEditableMS2525bObject.TextModifier getTextModifier(String aModifierName)
      Returns a description of the modifier with the given name.
      This implementation also supports modifiers that are encoded in the symbol code (SIDC).
      Parameters:
      aModifierName - the modifier's name (see ILcdMS2525bCoded)
      Returns:
      an object encapsulating the given modifier's constraints and type, or null if the modifier is not applicable
    • getTextModifierKeyDisplayName

      public String getTextModifierKeyDisplayName(String aModifierName)
      Returns the display name of the modifier with the given key.
      This implementation also supports modifiers that are encoded in the symbol code (SIDC).
      Specified by:
      getTextModifierKeyDisplayName in interface ILcdMS2525bCoded
      Parameters:
      aModifierName - the modifier's name (see ILcdMS2525bCoded)
      Returns:
      the display name of the modifier with the given key.
    • getTextModifierValue

      public String getTextModifierValue(String aModifierKey)
      Returns the value of the modifier with the given key.
      This implementation also supports modifiers that are encoded in the symbol code (SIDC).
      Specified by:
      getTextModifierValue in interface ILcdMS2525bCoded
      Parameters:
      aModifierKey - the key of the modifier to retrieve the value of.
      Returns:
      the value of the modifier with the given key.
    • getTextModifierValue

      public String getTextModifierValue(TLcdEditableMS2525bObject.TextModifier aModifier)
      Returns the object's value for the given text modifier.
      This implementation also supports modifiers that are encoded in the symbol code (SIDC).
      Parameters:
      aModifier - the modifier to return the value for
      Returns:
      the modifier value for the given modifier
    • getTextModifierValue

      public String getTextModifierValue(int aIndex)
      Description copied from interface: ILcdMS2525bCoded
      Returns the value of the text modifier at the given index.
      Specified by:
      getTextModifierValue in interface ILcdMS2525bCoded
      Parameters:
      aIndex - the index of the value of the text modifier to retrieve.
      Returns:
      the value of the text modifier at the given index.
      See Also:
    • setMS2525Code

      public void setMS2525Code(String aMS2525Code)
      Sets the MIL-STD 2525 code on this object. This has an influence on the maximum number of points the shape can have and might thus change the internal point list.
      Specified by:
      setMS2525Code in interface ILcdEditableMS2525bCoded
      Parameters:
      aMS2525Code - a 15 character code denoting the function of this shape. Undefined positions should carry the character '-'. *
      Throws:
      IllegalArgumentException - when the code passed is null or isn't a valid MIL-STD 2525 code.
    • putTextModifier

      public void putTextModifier(String aModifierKey, String aModifierValue)
      Adds the given value of the modifier with the given key.
      This implementation also supports modifiers that are encoded in the symbol code (SIDC).
      Specified by:
      putTextModifier in interface ILcdEditableMS2525bCoded
      Parameters:
      aModifierKey - the key of the modifier to add.
      aModifierValue - the value of the modifier to add.
      Throws:
      IllegalArgumentException - if the symbol does not support the given modifier
    • putTextModifier

      public void putTextModifier(TLcdEditableMS2525bObject.TextModifier aModifier, String aValue)
      Sets the given value for the given modifier.
      This implementation also supports modifiers that are encoded in the symbol code (SIDC).
      Parameters:
      aModifier - the modifier to set the value for
      aValue - the value of the modifier to add
      Throws:
      IllegalArgumentException - if the symbol does not support the given modifier
    • getOrientation

      public double getOrientation()
      Returns the direction of movement for this object. Do not use this method, instead get the String representation of the direction of movement through the getTextModifierValue(java.lang.String) method.
      Specified by:
      getOrientation in interface ILcdOriented
      Returns:
      the value of the text modifier ILcdMS2525bCoded.sMovementDirection. If this value is not a number or not defined Double.NaN is returned.
      See Also:
    • setOrientation

      public void setOrientation(double aOrientation)
      Sets the direction of movement. Do not use this method, instead set the direction of movement through the putTextModifier(java.lang.String, java.lang.String) method, using the ILcdMS2525bCoded.sMovementDirection key. The value of that modifier will be adapted to reflected the orientation entered in this method.
      Specified by:
      setOrientation in interface ILcdOrientationSettable
      Parameters:
      aOrientation - the new direction of movement.
      See Also:
    • clone

      public Object clone()
      Creates and returns a copy of this object.

      The point list is cloned. The symbol code, features and text modifiers are copied without being cloned.

      Specified by:
      clone in interface ILcdCloneable
      Specified by:
      clone in interface ILcdEditableMS2525bCoded
      Overrides:
      clone in class TLcdLonLatPolyline
      See Also:
    • toString

      public String toString()
      Prints out the name and affiliation.

      Do not rely on the implementation of this method: it may change without notice.

      Overrides:
      toString in class ALcd2DEditablePolypoint
      Returns:
      a string representation of the object.
    • equals

      public boolean equals(Object aObject)
      Returns whether the given object is equal to this object. The applied comparison rule is the same as defined by Object#equals(Object), i.e. two non-null objects are the same if and only if they refer to the same object (this == aObject has the value true).
      Overrides:
      equals in class TLcdLonLatPolyline
      Parameters:
      aObject - the reference object with which to compare.
      Returns:
      true if this object is the same as the aObject argument; false otherwise.
      See Also:
    • hashCode

      public int hashCode()
      Returns the same hash code for the given object as returned by the default method Object#hashCode().
      Overrides:
      hashCode in class TLcdLonLatPolyline
      Returns:
      a hash code value for this object.
      See Also:
    • getValue

      public Object getValue(TLcdDataProperty aProperty)
      Description copied from interface: ILcdDataObject

      Returns the value of the given property.

      If the property is a collection, the returned value will never be null. If the property has not been set, an empty collection of the appropriate type will be returned (Set, List or Map).

      The property must not be null, and must be declared in the data object's type or in one of its super types. Otherwise an IllegalArgumentException is thrown.

      Specified by:
      getValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which the value is to be returned
      Returns:
      the value of the given property for this data object
    • getDataType

      public TLcdDataType getDataType()
      Description copied from interface: ILcdDataObject
      Returns the type of this data object. This can never be null.
      Specified by:
      getDataType in interface ILcdDataObject
      Returns:
      the type of this data object
    • setValue

      public void setValue(TLcdDataProperty aProperty, Object aValue)
      Description copied from interface: ILcdDataObject

      Sets the value of the given property for this data object. The implementation is allowed to throw an exception if the given value can't be set.

      The given property must be declared in the data object's type or in one of its super types. In other words, getDataType().getProperties().contains( aProperty ) should always be true. Otherwise, the implementation should throw an IllegalArgumentException.

      Specified by:
      setValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which the value is to be set
      aValue - the value to set
      See Also:
    • getValue

      public Object getValue(String aPropertyName)
      Description copied from interface: ILcdDataObject

      Convenience method that returns the value of the property with the given name.

      If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy).

      See ILcdDataObject.getValue(TLcdDataProperty) for more information.

      Specified by:
      getValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property of which the value is to be returned
      Returns:
      the value of the property with the given name
      See Also:
    • setValue

      public void setValue(String aPropertyName, Object aValue)
      Description copied from interface: ILcdDataObject

      Convenience method that sets the value of the property with the given name.

      If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy).

      See ILcdDataObject.setValue(TLcdDataProperty, Object) for more information.

      Specified by:
      setValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property of which the value is to be set
      aValue - the value to set
    • hasValue

      public boolean hasValue(TLcdDataProperty aProperty)
      Description copied from interface: ILcdDataObject
      Indicates whether this data object has a value for the given property.

      • aProperty is from the right data type, and this instance has a value for it: returns true
      • aProperty is from the right data type, and this instance has no value for it: returns false
      • aProperty is not from the right data type: not allowed, you will get IllegalArgumentException
      • aProperty is null: not allowed, you will get NullPointerException

      A multivalued property is considered to have a value if it has at least one value.

      Specified by:
      hasValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which to return whether a value is present or not.
      Returns:
      true if this data object has a value for the given property, false otherwise.
    • hasValue

      public boolean hasValue(String aPropertyName)
      Description copied from interface: ILcdDataObject
      Indicates whether this data object has a value for the given property.
      See ILcdDataObject.hasValue(TLcdDataProperty) for more information.
      Specified by:
      hasValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property for which to return whether a value is present or not.
      Returns:
      true if this data object has a value for the property with the given name, false otherwise.
    • getFormattedSIDC

      public String getFormattedSIDC()
      Returns a user-friendly representation of the symbol code of the object (SIDC).
      Returns:
      a representation without any null characters
      See Also:
    • getEchelon

      public TLcdMS2525bEchelonNode getEchelon()
      Retrieves the configured echelon value
      Returns:
      the echelon
      See Also:
    • setEchelon

      public void setEchelon(TLcdMS2525bEchelonNode aValue)
      Sets the echelon value for this symbol
      Parameters:
      aValue - the new value
      See Also:
    • getHierarchyType

      public TLcdMS2525bNode getHierarchyType()
      Returns the type of this symbol in the symbol hierarchy (e.g. air track, road block, ... ).
      Returns:
      the hierarchy type
      See Also:
    • setHierarchyType

      public void setHierarchyType(TLcdMS2525bNode aType)
      Sets the type of this symbol in the symbol hierarchy It leaves other symbol modifier values untouched, unless they become invalid.
      Parameters:
      aType - the new hierarchy type. The type must not be a folder.
      See Also:
    • getCountry

      public String getCountry()
      Returns the current country for this object, or "Undefined" if this object has no country information.
      Returns:
      one of getPossibleCountries()
      See Also:
    • getPossibleCountries

      public Collection<String> getPossibleCountries()
      Returns the possible countries this object can be assigned to. The list of countries is based on the FIPS PUB 10-4 codes (now called Geopolitical Entities and Codes), as this is used to encode the country information into the SIDC. If an undefined value is allowed, it is the first value in the list. The remaining entries are alphabetically ordered.
      Returns:
      the countries this object can be assigned to, including "Undefined" if applicable
      See Also:
    • setCountry

      public void setCountry(String aValue)
      Sets the current country for this object, or "Undefined" if no country is assigned.
      Parameters:
      aValue - one of getPossibleCountries()
      See Also:
    • getPossibleStatusValues

      public Collection<String> getPossibleStatusValues()
      Returns the possible status values for this symbol (for example, present or anticipated). If an undefined value is allowed, it is the first value in the list.
      Returns:
      the applicable values, including "Undefined"
    • getStatusValue

      public String getStatusValue()
      Returns the current status value of this symbol, or "Undefined" if no status is assigned.
      Returns:
      one of getPossibleStatusValues()
    • setStatusValue

      public void setStatusValue(String aValue)
      Sets the current status value of this symbol, or "Undefined if no status is assigned.
      Parameters:
      aValue - one of getPossibleStatusValues()
    • getOrderOfBattleValue

      public String getOrderOfBattleValue()
      Returns the current order of battle of this symbol, or "Undefined" if no order of battle is assigned.
      Returns:
      one of getPossibleOrderOfBattleValues()
    • getPossibleOrderOfBattleValues

      public Collection<String> getPossibleOrderOfBattleValues()
      Returns the possible order of battle values for this symbol (e.g. Air OB, Ground OB, ...). If an undefined value is allowed, it is the first value in the list.
      Returns:
      the applicable values
    • setOrderOfBattleValue

      public void setOrderOfBattleValue(String aValue)
      Sets the current order of battle value of this symbol, or "Undefined" if no order of battle is assigned.
      Parameters:
      aValue - one of getPossibleOrderOfBattleValues()
    • getPossibleAffiliationValues

      public Collection<String> getPossibleAffiliationValues()
      Returns the possible order of affiliation values for this symbol (e.g. Unknown, Hostile, Neutral, ...) If the "Unknown" value is allowed, it is the first value in the list.
      Returns:
      the applicable values
    • getAffiliationValue

      public String getAffiliationValue()
      Returns the current affiliation of this symbol, or "Undefined" if the affiliation is not defined for this type of symbol.
      Returns:
      one of getPossibleAffiliationValues()
    • setAffiliationValue

      public void setAffiliationValue(String aValue)
      Sets the current affiliation of this symbol.
      Parameters:
      aValue - one of getPossibleAffiliationValues()
    • getPossibleModifiers

      public Collection<TLcdEditableMS2525bObject.TextModifier> getPossibleModifiers()
      Returns a collection of the possible modifiers of this symbol, i.e. all SIDC and text modifiers
      Returns:
      the applicable modifiers
    • getPossibleSIDCModifiers

      public Collection<TLcdEditableMS2525bObject.TextModifier> getPossibleSIDCModifiers()
      Returns a collection of the possible SIDC modifiers of this symbol, e.g. the affiliation, status, and so on.
      Returns:
      the applicable SIDC modifiers
    • getPossibleTextModifiers

      public Collection<TLcdEditableMS2525bObject.TextModifier> getPossibleTextModifiers()
      Returns a collection of the possible text modifiers of this symbol, i.e. modifiers that are not encoded in the symbol code.
      Returns:
      the applicable text modifiers