Class Parameter<T>

Object
Parameter<T>
All Implemented Interfaces:
Parameter<T>
Direct Known Subclasses:
DataAccessFactory.Param

public class Parameter<T> extends Object implements Parameter<T>
A Parameter defines information about a valid process parameter.
Author:
gdavis
  • Field Details

    • key

      public final String key
      This is the key (ie machine readable text) used to represent this parameter in a java.util.Map.
    • title

      public final InternationalString title
      Human readable title/name of this parameter.
    • description

      public final InternationalString description
      Human readable description of this parameter.
    • type

      public final Class<T> type
      Class binding for this parameter.

      When a value is supplied for this key it should be of the provided type.

    • required

      public final boolean required
      Can the value be missing? Or is null allowed... Return true if a value is required to be both present and non null
    • minOccurs

      public final int minOccurs
      What is the min and max number of this paramter there can be ( a value of -1 for min means 0 or more, a value of -1 for max means any number greater than or equal to the min value )

      eg: a geometry union process can have any number of geom parameters, so by setting the max to -1 and the min to 2 we accomplish that.

    • maxOccurs

      public final int maxOccurs
    • sample

      public final T sample
      A sample value; often used as a default when prompting the end-user to fill in the details before executing a process.
    • FEATURE_TYPE

      public static final String FEATURE_TYPE
      "featureType" FeatureType to validate a Feature value against
      See Also:
    • IS_PASSWORD

      public static final String IS_PASSWORD
      Boolean indicating whether the parameter shall be used as a password field, provides a hint for UI's to mask text fields, configuration systems to encrypt content, etc
      See Also:
    • IS_LARGE_TEXT

      public static final String IS_LARGE_TEXT
      Boolean indicating whether the parameter is meant to be a long text, provides a hint for UI's use long text fields, textareas and the like
      See Also:
    • LENGTH

      public static final String LENGTH
      "length" Integer used to limit the length of strings or literal geometries.
      See Also:
    • CRS

      public static final String CRS
      "crs": CoordinateReferenceSystem used to restrict a Geometry literal
      See Also:
    • ELEMENT

      public static final String ELEMENT
      "element": Class to use as the Element type for List. Please restrict your use of this facility to simple types; for most higher order data structures multiplicity is already accounted for - example MultiGeometry.
      See Also:
    • MIN

      public static final String MIN
      "min" and "max" may be useful for restrictions for things like int sizes, etc.
      See Also:
    • MAX

      public static final String MAX
      "min" and "max" may be useful for restrictions for things like int sizes, etc.
      See Also:
    • OPTIONS

      public static final String OPTIONS
      As an alternative to "min" and "max" a speciifc List of options can be provided for a user to choose between. The description should explain what the options mean.

      Example: a compliance level of (0-low,1-medium,2-high)

      Although a List is used here (so you can specifiy order) it is assumed you will not confuse your users by placing duplicates in the list.

      See Also:
    • EXT

      public static final String EXT
      File extension expected - "shp", "jpg", etc...
      See Also:
    • LEVEL

      public static final String LEVEL
      Level or Category of the parameter - "user", "advanced", "program"

      • user - should be shown to all users and is used every time.
        example: user name and password
      • advanced - advanced or expert parameter used in special cases
        example: choice between get and post requests for WFS
      • program - intended for programs often tweaking settings for performance
        example: JDBC datasource for which it is hard for a user to type in
      See Also:
    • DEPRECATED

      public static final String DEPRECATED
      Set parameter to deprecated - true, false ;can be used to conditional show the parameter based on deprecated value
      See Also:
    • metadata

      public final Map<String,Object> metadata
      Refinement of type; such as the FeatureType of a FeatureCollection, or component type of a List.

      This information is supplied (along with type) to allow a process implementor communicate additional restrictions on the allowed value beyond the strict type.

      The following keys are understood at this time: LENGTH, FEATURE_TYPE, CRS, ELEMENT .. additional keys will be documented as static final fields over time.

      Any restrictions mentioned here should be mentioned as part of your parameter description. This metadata is only used to help restrict what the user enters; not all client application will understand and respect these keys - please communicate with your end-user.

      See Also:
  • Constructor Details

    • Parameter

      public Parameter(String key, Class<T> type, String title, String description)
      Mandatory parameter - quickly constructed with out a properly internationalized title and description.
      Parameters:
      key - machine readable key for use in a java.util.Map
      type - Java class for the expected value
      title - Human readable title used for use in a user interface
      description - Human readable description
    • Parameter

      public Parameter(String key, Class<T> type, String title, String description, Map<String,Object> metadata)
      Mandatory parameter - quickly constructed with out a properly internationalized title and description.
      Parameters:
      key - machine readable key for use in a java.util.Map
      type - Java class for the expected value
      title - Human readable title used for use in a user interface
      description - Human readable description
    • Parameter

      public Parameter(String key, Class<T> type, InternationalString title, InternationalString description)
      Mandatory parameter
      Parameters:
      key - machine readable key for use in a java.util.Map
      type - Java class for the expected value
      title - Human readable title used for use in a user interface
      description - Human readable description
    • Parameter

      public Parameter(String key, Class<T> type, InternationalString title, InternationalString description, Map<String,Object> metadata)
      Mandatory parameter with metadata.
      Parameters:
      key - machine readable key for use in a java.util.Map
      type - Java class for the expected value
      title - Human readable title used for use in a user interface
      description - Human readable description
      metadata - Hints to the user interface (read the javadocs for each metadata key)
      See Also:
    • Parameter

      public Parameter(String key, Class<T> type, InternationalString title, InternationalString description, boolean required, int min, int max, T sample, Map<String,Object> metadata)
      Addition of optional parameters
      Parameters:
      key - machine readable key for use in a java.util.Map
      type - Java class for the expected value
      title - Human readable title used for use in a user interface
      description - Human readable description
      required - true if the value is required
      min - Minimum value; or -1 if not needed
      max - Maximum value; or -1 for unbound
      sample - Sample value; may be used as a default in a user interface
      metadata - Hints to the user interface (read the javadocs for each metadata key)
      See Also:
    • Parameter

      public Parameter(String key, Class<T> type)
      Constructs a parameter from key and type
      Parameters:
      key - machine readable key for use in a java.util.Map
      type - Java class for the expected value
    • Parameter

      public Parameter(String key, Class<T> type, int min, int max)
      Constructs a parameter from key, type, and min/max occurs.
      Parameters:
      key - machine readable key for use in a java.util.Map
      type - Java class for the expected value
      min - Minimum value of occurrences, -1 if not needed
      max - Maximum value of occurrences, -1 for unbound
  • Method Details

    • getName

      public String getName()
      Description copied from interface: Parameter
      Name of the parameter.
      Specified by:
      getName in interface Parameter<T>
    • getTitle

      public InternationalString getTitle()
      Description copied from interface: Parameter
      Title of the parameter.
      Specified by:
      getTitle in interface Parameter<T>
    • getDescription

      public InternationalString getDescription()
      Description copied from interface: Parameter
      Description of the parameter.
      Specified by:
      getDescription in interface Parameter<T>
    • getType

      public Class<T> getType()
      Description copied from interface: Parameter
      Type/class of the parameter.
      Specified by:
      getType in interface Parameter<T>
    • isRequired

      public Boolean isRequired()
      Description copied from interface: Parameter
      Flag indicating if the parameter is required or not.
      Specified by:
      isRequired in interface Parameter<T>
    • getMinOccurs

      public int getMinOccurs()
      Description copied from interface: Parameter
      The minimum number of occurrences of the parameter.
      Specified by:
      getMinOccurs in interface Parameter<T>
      Returns:
      minimum number of occurrences, or -1 if no minimum needed
    • getMaxOccurs

      public int getMaxOccurs()
      Description copied from interface: Parameter
      The maximum number of occurrences of the parameter.
      Specified by:
      getMaxOccurs in interface Parameter<T>
      Returns:
      maximum number of occurences, or -1 for unbound
    • getDefaultValue

      public T getDefaultValue()
      Description copied from interface: Parameter
      A default value for the parameter.
      Specified by:
      getDefaultValue in interface Parameter<T>
    • isPassword

      public boolean isPassword()
      Provides for easy access to the IS_PASSWORD metadata
      Returns:
      true if metadata.get(IS_PASSWORD) == Boolean.TRUE
    • isDeprecated

      public Boolean isDeprecated()
      Easy access to check the DEPRECATED metadata
      Returns:
      provided deprecated or false by default
    • getLevel

      public String getLevel()
      Easy access to check the LEVEL metadata
      Returns:
      provided level or "user" by default
    • toString

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

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

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