Class AbstractParameterDescriptor

All Implemented Interfaces:
Serializable, Formattable, Deprecable, LenientComparable, org.opengis.parameter.GeneralParameterDescriptor, org.opengis.referencing.IdentifiedObject
Direct Known Subclasses:
DefaultParameterDescriptor, DefaultParameterDescriptorGroup, TensorValues

public abstract class AbstractParameterDescriptor extends AbstractIdentifiedObject implements org.opengis.parameter.GeneralParameterDescriptor
Abstract definition of a parameter or group of parameters used by a coordinate operation or a process. This interface combines information provided by Referencing by Coordinates (ISO 19111), Service Metadata (ISO 19115) and Web Processing Services (WPS) standards. The main information are:
Main parameter properties
Getter method ISO 19111 WPS ISO 19115 Remarks
getName() name Identifier name See Parameters.getMemberName(ParameterDescriptor) for MemberNameIdentifier mapping.
AbstractIdentifiedObject.getDescription() Abstract description Also known as “definition”.
getDirection() direction Tells if the parameter is a WPS Input or Output structure.
getMinimumOccurs() minimumOccurs MinOccurs optionality optionality   = (minimumOccurs > 0)
getMaximumOccurs() maximumOccurs MaxOccurs repeatability repeatability = (maximumOccurs > 1)
Since:
0.5
Version:
0.6
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serial number for inter-operability with different versions.
      See Also:
    • minimumOccurs

      private short minimumOccurs
      The minimum number of times that values for this parameter group are required, as an unsigned short. We use a short because this value is usually either 0 or 1, or a very small number like 2 or 3. A large number would be a bad idea with this parameter implementation.

      Consider this field as final! This field is modified only at unmarshalling time by setNonDefaultMinimumOccurs(Integer)

    • maximumOccurs

      private short maximumOccurs
      The maximum number of times that values for this parameter group are required, as an unsigned short. Value 0xFFFF (or -1) means an unrestricted number of occurrences.

      We use a short because this value is usually 1 or a very small number like 2 or 3. It also serves as a safety since a large number would be a bad idea with this parameter implementation.

      Consider this field as final! This field is modified only at unmarshalling time by setNonDefaultMaximumOccurs(Integer)

  • Constructor Details

    • AbstractParameterDescriptor

      protected AbstractParameterDescriptor(Map<String,?> properties, int minimumOccurs, int maximumOccurs)
      Constructs a parameter descriptor from a set of properties. The properties map is given unchanged to the super-class constructor. The following table is a reminder of main (not all) properties:
      Recognized properties (non exhaustive list)
      Property name Value type Returned by
      "name" ReferenceIdentifier or String AbstractIdentifiedObject.getName()
      "alias" GenericName or CharSequence (optionally as array) AbstractIdentifiedObject.getAlias()
      "identifiers" ReferenceIdentifier (optionally as array) AbstractIdentifiedObject.getIdentifiers()
      "remarks" InternationalString or String AbstractIdentifiedObject.getRemarks()
      Parameters:
      properties - the properties to be given to the identified object.
      minimumOccurs - the minimum number of times that values for this parameter group are required, or 0 if no restriction.
      maximumOccurs - the maximum number of times that values for this parameter group are required, or Integer.MAX_VALUE if no restriction.
    • AbstractParameterDescriptor

      protected AbstractParameterDescriptor(org.opengis.parameter.GeneralParameterDescriptor descriptor)
      Constructs a new parameter descriptor with the same values than the specified one. This copy constructor provides a way to convert an arbitrary implementation into a SIS one or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API.

      This constructor performs a shallow copy, i.e. the properties are not cloned.

      Parameters:
      descriptor - the object to shallow copy.
    • AbstractParameterDescriptor

      AbstractParameterDescriptor()
      Constructs a new object in which every attributes are set to a null value. This is not a valid object. This constructor is strictly reserved to JAXB, which will assign values to the fields using reflection.
  • Method Details

    • crop

      private static short crop(int n)
      Crops the given integer in the [0 … 0xFFFF] range.
    • getInterface

      public Class<? extends org.opengis.parameter.GeneralParameterDescriptor> getInterface()
      Returns the GeoAPI interface implemented by this class. The default implementation returns GeneralParameterDescriptor.class. Subclasses implementing a more specific GeoAPI interface shall override this method.
      Overrides:
      getInterface in class AbstractIdentifiedObject
      Returns:
      the parameter descriptor interface implemented by this class.
    • getMinimumOccurs

      public int getMinimumOccurs()
      The minimum number of times that values for this parameter group or parameter are required. A value of 0 means an optional parameter.
      Specified by:
      getMinimumOccurs in interface org.opengis.parameter.GeneralParameterDescriptor
      Returns:
      the minimum occurrence.
    • getMaximumOccurs

      public int getMaximumOccurs()
      The maximum number of times that values for this parameter group or parameter can be included. A value greater than 1 means a repeatable parameter.
      Specified by:
      getMaximumOccurs in interface org.opengis.parameter.GeneralParameterDescriptor
      Returns:
      the maximum occurrence.
    • equals

      public boolean equals(Object object, ComparisonMode mode)
      Compares the specified object with this parameter for equality.
      Specified by:
      equals in interface LenientComparable
      Overrides:
      equals in class AbstractIdentifiedObject
      Parameters:
      object - the object to compare to this.
      mode - the strictness level of the comparison.
      Returns:
      true if both objects are equal according the given comparison mode.
      See Also:
    • toString

      public String toString()
      Returns a string representation of this descriptor.

      This method is for information purpose only and may change in future SIS version.

      Overrides:
      toString in class FormattableObject
      Returns:
      the Well Known Text (WKT) or an alternative representation of this object.
    • print

      @Debug public void print()
      Prints a string representation of this descriptor to the standard output stream. If a console is attached to the running JVM (i.e. if the application is run from the command-line and the output is not redirected to a file) and if Apache SIS thinks that the console supports the ANSI escape codes (a.k.a. X3.64), then a syntax coloring will be applied.

      This is a convenience method for debugging purpose and for console applications.

      Overrides:
      print in class FormattableObject
    • formatTo

      protected String formatTo(Formatter formatter)
      Formats this descriptor as a pseudo-Well Known Text element. The WKT specification does not define any representation of parameter descriptors. Apache SIS fallbacks on a list of descriptors. The text formatted by this method is flagged as invalid WKT.
      Overrides:
      formatTo in class AbstractIdentifiedObject
      Parameters:
      formatter - the formatter where to format the inner content of this WKT element.
      Returns:
      "Parameter" or "ParameterGroup".
      See Also:
    • getNonDefaultMinimumOccurs

      private Integer getNonDefaultMinimumOccurs()
      Invoked by JAXB for marshalling the minimumOccurs value. Omit marshalling of this gml:minimumOccurs element if its value is equal to the default value, which is 1.
    • getNonDefaultMaximumOccurs

      private Integer getNonDefaultMaximumOccurs()
      Invoked by JAXB for marshalling the maximumOccurs value. Omit marshalling of this gml:maximumOccurs element if its value is equal to the default value, which is 1.

      This property should not be marshalled in DefaultParameterDescriptor objects (the GML schema does not allow that). It should be marshalled only for DefaultParameterDescriptorGroup objects. Since SIS marshals minimumOccurs and maximumOccurs properties only when their value is different than 1, and since ParameterDescriptor should not have a maximumOccurs value different than 1 when ISO 19111 compliance is desired, the GML document should be valid in most cases.

    • setNonDefaultMinimumOccurs

      private void setNonDefaultMinimumOccurs(Integer n)
      Invoked by JAXB for unmarshalling the minimumOccurs value.
    • setNonDefaultMaximumOccurs

      private void setNonDefaultMaximumOccurs(Integer n)
      Invoked by JAXB for unmarshalling the maximumOccurs value.