Class FeatureFormat

  • All Implemented Interfaces:
    Serializable, Cloneable, Localized

    public class FeatureFormat
    extends TabularFormat<Object>
    Formats features or feature types in a tabular format. This format assumes a monospaced font and an encoding supporting drawing box characters (e.g. UTF-8).
    Example: a feature named “City” and containing 3 properties (“name”, “population” and “twin town”) may be formatted like below. The two first properties are attributes while the last property is an association to an other feature.
    City
    ┌────────────┬─────────┬──────────────┬───────────┐
    │ Name       │ Type    │ Multiplicity │ Value     │
    ├────────────┼─────────┼──────────────┼───────────┤
    │ name       │ String  │ [1 … 1]      │ Paderborn │
    │ population │ Integer │ [1 … 1]      │ 143,174   │
    │ twin town  │ City    │ [0 … ∞]      │ Le Mans   │
    └────────────┴─────────┴──────────────┴───────────┘

    Limitations:

    • The current implementation can only format features — parsing is not yet implemented.
    • Feature­Format, like most java​.text​.Format subclasses, is not thread-safe.
    Since:
    0.5
    See Also:
    Serialized Form

    Defined in the sis-feature module

    • Constructor Detail

      • FeatureFormat

        public FeatureFormat()
        Creates a new formatter for the default locale and timezone.
      • FeatureFormat

        public FeatureFormat​(Locale locale,
                             TimeZone timezone)
        Creates a new formatter for the given locale and timezone.
        Parameters:
        locale - the locale, or null for Locale​.ROOT.
        timezone - the timezone, or null for UTC.
    • Method Detail

      • getValueType

        public final Class<Object> getValueType()
        Returns the type of objects formatted by this class. This method has to return Object​.class since it is the only common parent to Feature and Feature­Type.
        Specified by:
        get­Value­Type in class Compound­Format<Object>
        Returns:
        Object​.class
      • getAllowedColumns

        public Set<FeatureFormat.Column> getAllowedColumns()
        Returns all columns that may be shown in the tables to format. The columns included in the set may be shown, but not necessarily; some columns will still be omitted if they are completely empty. However columns not included in the set are guaranteed to be omitted.
        Returns:
        all columns that may be shown in the tables to format.
        Since:
        0.8
      • setAllowedColumns

        public void setAllowedColumns​(Set<FeatureFormat.Column> inclusion)
        Sets all columns that may be shown in the tables to format. Note that the columns specified to this method are not guaranteed to be shown; some columns will still be omitted if they are completely empty.
        Parameters:
        inclusion - all columns that may be shown in the tables to format.
        Since:
        0.8
      • format

        public void format​(Object object,
                           Appendable toAppendTo)
                    throws IOException
        Formats the given object to the given stream of buffer. The object may be an instance of any of the following types:
        • Feature
        • Feature­Type
        Specified by:
        format in class Compound­Format<Object>
        Parameters:
        object - the object to format.
        to­Append­To - where to format the object.
        Throws:
        IOException - if an error occurred while writing to the given appendable.
      • parse

        public Object parse​(CharSequence text,
                            ParsePosition pos)
                     throws ParseException
        Not yet supported.
        Specified by:
        parse in class Compound­Format<Object>
        Parameters:
        text - the character sequence for the object to parse.
        pos - the position where to start the parsing. On return, the position where the parsing stopped or where an error occurred.
        Returns:
        currently never return.
        Throws:
        Parse­Exception - currently always thrown.