Class ALcdASTERIXCategory

java.lang.Object
com.luciad.format.asterix.ALcdASTERIXCategory
Direct Known Subclasses:
TLcdASTERIXCategory1, TLcdASTERIXCategory10, TLcdASTERIXCategory11, TLcdASTERIXCategory21, TLcdASTERIXCategory21Version0Dot23, TLcdASTERIXCategory240, TLcdASTERIXCategory244, TLcdASTERIXCategory30, TLcdASTERIXCategory30Version2Dot5Ter, TLcdASTERIXCategory34, TLcdASTERIXCategory48, TLcdASTERIXCategory62, TLcdASTERIXCategory8

public abstract class ALcdASTERIXCategory extends Object
Base class for all classes that represent an ASTERIX category.

General

ASTERIX data is structured into different data categories, each having a unique number. Every supported category is modelled using a subclass of this class, e.g. TLcdASTERIXCategory1.

Every data category can have multiple user application profiles; they can be retrieved from this category class (see getUAP(int)).

To test if a given category instance is the same as some other category instance, the equals method should be used.

Naming convention

All subclasses of this class define a lot of constants (see for example TLcdASTERIXCategory1.I001_010_CI_DATA_SOURCE_ID). These constants are not documented individually, but instead follow the naming convention explained below.

For every data category, a lot of extra information (such as "Ground speed", "Track number", ...) is made available by the domain objects. All domain objects implement the ILcdDataObject interface. This interface offers a unified way to obtain information about the element they represent. Each ILcdDataObject is associated with a TLcdDataType that describes what properties are contained in the ILcdDataObject.

Each category generally has a list of public constants that define all properties of the tracks of that category. The constants are composed like this:

ICCC_DDD(_S)*_XI_NAME

  • CCC: the category number, e.g., 001
  • DDD: the data item number used in the ASTERIX specifications, e.g., 010; for non-standard data items (that don't have a data item number) the character codes from the ASTERIX specifications are used, e.g. RE, SP
  • S: the sub item numbers (e.g., 1, 2, ...); data items can be nested, a sub number is specified for each sub level, e.g. _1_3_5; is omitted for top level properties;
  • XI: is either SI, CI, or LI
    • SI: Simple Item, the value of the property with this name has a simple value, such as a speed, a distance, ...
    • CI: Complex Item, the value of the property with this name is of type ILcdDataObject, and in turn has sub properties.
    • LI: List Item, similar to CI, but all the sub items are of the same type which can be simple (SI), for example a list of distances or speeds, but can also be complex (CI);
  • NAME: a descriptive name

Examples:

Consider the constant TLcdASTERIXCategory1.I001_040_CI_MEASURED_POSITION_POLAR. The '001' refers to category 1, the '040' refers to data item 040 (see specs), the CI indicates that this is a complex item, composed of others, and 'MEASURED_POSITION_POLAR' is a descriptive name. Because the sub item number is omitted, this is a top level property.

Consider the constant TLcdASTERIXCategory62.I062_500_3_SI_EST_ACC_LONGITUDE. The '062' refers to category 62, the '500' refers to data item 500 (see specs), the sub item number '3' means this constant is about the 3rd sub item of data item 500: "Estimated Accuracy Of Track Position (WGS-84)". 'SI' indicates it's a simple value (the longitude is expressed in degrees), and 'EST_ACC_LONGITUDE' is an abbreviation for 'estimated accuracy of the longitude'.

Apart from the ILcdDataObject interface, all domain objects also implement the ILcdFeatured interface, for reasons of backwards compatibility. For this reason, it is recommended that the newer ILcdDataObject interface is used instead of the ILcdFeatured interface where possible. The meta-data for the featured interface (such as a descriptive name) is available through the ILcdFeaturedDescriptor interface. Please refer to ALcdASTERIXModelDescriptor for a more detailed discussion about the features.

  • Method Details

    • getCategoryNumber

      public int getCategoryNumber()
      Returns the category number of this data category. This is a unique identifier for that category.
      Returns:
      the category number of this data category.
    • getUAP

      public ALcdASTERIXUserApplicationProfile getUAP(int aIndex)
      Returns the user application profile at the given index.
      Parameters:
      aIndex - The index to retrieve the user application profile for. 0 <= aIndex < getUAPCount().
      Returns:
      the user application profile at the given index.
    • getUAPCount

      public int getUAPCount()
      Returns the number of user application profiles (UAP) available.
      Returns:
      the number of user application profiles (UAP) available.
      See Also:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object