Class TLcdProcedure

java.lang.Object
com.luciad.ais.model.procedure.TLcdProcedure
All Implemented Interfaces:
ILcdEditableProcedure, ILcdProcedure, ILcdDataObject
Direct Known Subclasses:
TLcdFeaturedProcedure, TLcdHolding

public class TLcdProcedure extends Object implements ILcdProcedure, ILcdEditableProcedure
An implementation of ILcdEditableProcedure.
  • Field Details

    • DESIGNATOR_PROPERTY

      public static final TLcdDataProperty DESIGNATOR_PROPERTY
      The Designator property of the procedure type. Values of this property are of type String.
    • LEGS_PROPERTY

      public static final TLcdDataProperty LEGS_PROPERTY
      The Legs property of the procedure type. Values of this property are Lists of objects of type ILcdProcedureLeg.
    • AERODROME_PROPERTY

      public static final TLcdDataProperty AERODROME_PROPERTY
      The Aerodrome property of the procedure type. Values of this property are of type ILcdAerodrome.
    • TYPE_PROPERTY

      public static final TLcdDataProperty TYPE_PROPERTY
      The Type property of the procedure type. Values of this property are of type TLcdProcedureType.
  • Constructor Details

  • Method Details

    • 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
    • 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
    • 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(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:
    • 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.
    • getDesignator

      public String getDesignator()
      Specified by:
      getDesignator in interface ILcdProcedure
      Returns:
      The unique identifier of this procedure.
    • setDesignator

      public void setDesignator(String aDesignator)
      Description copied from interface: ILcdEditableProcedure
      Sets the unique identifier of this procedure to the given string.
      Specified by:
      setDesignator in interface ILcdEditableProcedure
      Parameters:
      aDesignator - the unique identifier of this procedure to the given string.
    • getType

      public TLcdProcedureType getType()
      Specified by:
      getType in interface ILcdProcedure
      Returns:
      The type of this procedure (SID, STAR, IAP)
    • setType

      public void setType(TLcdProcedureType aType)
      Description copied from interface: ILcdEditableProcedure
      Sets the type of this procedure.
      Specified by:
      setType in interface ILcdEditableProcedure
      Parameters:
      aType - Either SID, STAR or IAP.
    • getLegCount

      public int getLegCount()
      Specified by:
      getLegCount in interface ILcdProcedure
      Returns:
      The number of legs in this procedure.
    • getLeg

      public ILcdProcedureLeg getLeg(int aIndex) throws IndexOutOfBoundsException
      Specified by:
      getLeg in interface ILcdProcedure
      Parameters:
      aIndex -
      Returns:
      The ILcdProcedureLeg at the given index.
      Throws:
      IndexOutOfBoundsException
    • addLeg

      public void addLeg(ILcdProcedureLeg aLeg)
      Description copied from interface: ILcdEditableProcedure
      Adds a leg to this procedure.
      Specified by:
      addLeg in interface ILcdEditableProcedure
      Parameters:
      aLeg - the leg to be added.
    • removeLeg

      public boolean removeLeg(ILcdProcedureLeg aLeg)
      Description copied from interface: ILcdEditableProcedure
      Removes the specified leg from this procedure.
      Specified by:
      removeLeg in interface ILcdEditableProcedure
      Parameters:
      aLeg - the leg to be removed.
      Returns:
      true if the leg was successfully removed.
    • insertSegmentAt

      public void insertSegmentAt(ILcdProcedureLeg aLeg, int aIndex)
      Description copied from interface: ILcdEditableProcedure
      Inserts the given leg into the procedure at the specified index.
      Specified by:
      insertSegmentAt in interface ILcdEditableProcedure
      Parameters:
      aLeg - the leg to be added.
      aIndex - the index at which to insert the new leg.
    • getAerodrome

      public ILcdAerodrome getAerodrome()
      Specified by:
      getAerodrome in interface ILcdProcedure
      Returns:
      The ILcdAerodrome associated with this procedure.
    • setAerodrome

      public void setAerodrome(ILcdAerodrome aAerodrome)
      Description copied from interface: ILcdEditableProcedure
      Sets the ILcdAerodrome associated with this procedure.
      Specified by:
      setAerodrome in interface ILcdEditableProcedure
      Parameters:
      aAerodrome - the ILcdAerodrome associated with this procedure.
    • cloneAsEditableProcedure

      public ILcdEditableProcedure cloneAsEditableProcedure()
      Description copied from interface: ILcdProcedure
      Creates a copy of this procedure which implements ILcdEditableProcedure. The copy may be a shallow one. This method is used to assemble new procedures out of legs from existing ones.
      Specified by:
      cloneAsEditableProcedure in interface ILcdProcedure
      Returns:
      An ILcdEditableProcedure.