Class TableColumn<V>

java.lang.Object
org.apache.sis.util.collection.TableColumn<V>
Type Parameters:
V - base type of all values in the column identified by this instance.
All Implemented Interfaces:
CheckedContainer<V>
Direct Known Subclasses:
Column, TableColumn.Constant

public class TableColumn<V> extends Object implements CheckedContainer<V>
Identifies a column in TreeTable.Node instances. Each TableColumn instance contains the column header and the type of values for a particular column. TableColumns are used for fetching values from nodes as in the following example:

Identity comparisons and serialization

This base class relies on identity comparisons instead of defining the equals(Object) method, because the element type is not a sufficient criterion for differentiating the columns (many columns have values of the same type) and the header is arbitrary. Consequently developers who create their own instances are encouraged to declare them as static final constants as in the above example, and use those constants consistently.

This base class is not serializable because the default deserialization mechanism does not resolve automatically the deserialized instances to the above-cited singleton instances. Developers who need serialization support for their own instances have to resolve them in their own subclass. The following example is one possible way to achieve that goal:

The constants defined in this class use a similar approach for providing serialization support.
Since:
0.3
Version:
1.0
  • Field Details

    • NAME

      public static final TableColumn<CharSequence> NAME
      Frequently-used constant for a column of object names. The column header is "Name" (eventually localized) and the column elements are typically instances of String or InternationalString, depending on whether the data provide localization support or not.
    • IDENTIFIER

      public static final TableColumn<String> IDENTIFIER
      Frequently-used constant for a column of object identifiers. The column header is "Identifier" (eventually localized) and the column elements are instances of String.
    • INDEX

      public static final TableColumn<Integer> INDEX
      Frequently-used constant for a column of index values. The column header is "Index" (eventually localized) and the column elements are instances of Integer.
    • TYPE

      public static final TableColumn<Class<?>> TYPE
      Frequently-used constant for a column of object types. The column header is "Type" (eventually localized).
    • VALUE

      public static final TableColumn<Object> VALUE
      Frequently-used constant for a column of object values. The column header is "Value" (eventually localized) and the column elements can be instance of any kind of objects.
      See Also:
    • VALUE_AS_TEXT

      public static final TableColumn<CharSequence> VALUE_AS_TEXT
      Frequently-used constant for a column of object textual values. The column header is "Value" (eventually localized) and the column elements are typically instances of String or InternationalString, depending on whether the data provide localization support or not.
    • VALUE_AS_NUMBER

      public static final TableColumn<Number> VALUE_AS_NUMBER
      Frequently-used constant for a column of object numerical values. The column header is "Value" (eventually localized).
    • REMARKS

      public static final TableColumn<CharSequence> REMARKS
      Frequently-used constant for a column of remarks. The column header is "Remarks" (eventually localized) and the column elements are typically instances of String or InternationalString, depending on whether the data provide localization support or not.
      Since:
      1.0
    • NAME_MAP

      static final Map<TableColumn<?>,Integer> NAME_MAP
      A map containing only the NAME column. This is the default set of columns when parsing a tree table.
    • type

      private final Class<V> type
      Base type of all values in the column identified by this ColumnTable instance.
  • Constructor Details

    • TableColumn

      protected TableColumn()
      Invoked on deserialization for creating an initially empty instance. This constructor has protected visibility only because the Java deserialization mechanism requires so; this constructor shall not be invoked in any other context. See the Identity comparisons and serialization section in the class javadoc for more information.
    • TableColumn

      TableColumn(Class<V> type)
      Creates a new instance for a build-in constant.
      Parameters:
      type - base type of all values in the column identified by this instance.
    • TableColumn

      public TableColumn(Class<V> type, CharSequence header)
      Creates a new instance for the given type of values.
      Parameters:
      type - base type of all values in the column identified by this instance.
      header - the text to display as column header.
  • Method Details

    • getHeader

      public org.opengis.util.InternationalString getHeader()
      Returns the text to display as column header.
      Returns:
      the text to display as column header.
    • getElementType

      public final Class<V> getElementType()
      Returns the base type of all values in any column identified by this TableColumn instance.
      Specified by:
      getElementType in interface CheckedContainer<V>
      Returns:
      the element type.
    • toString

      public String toString()
      Returns a string representation of this table column. The default implementation returns the header in its default locale.
      Overrides:
      toString in class Object