Class Parameter<T>

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean booleanValue()
      Returns the boolean value of an operation parameter.
      Parameter clone()
      Returns a clone of this parameter.
      static Parameter<Double> create​(String name, double value, Unit<?> unit)
      Constructs a parameter from the specified name and value.
      static Parameter<Integer> create​(String name, int value)
      Constructs a parameter from the specified name and value.
      static <T extends CodeList>
      Parameter<T>
      create​(String name, Class<T> type, T value)
      Constructs a parameter from the specified code list.
      double doubleValue()
      Returns the numeric value of the coordinate operation parameter with its associated unit of measure.
      double doubleValue​(Unit<?> unit)
      Returns the numeric value of the coordinate operation parameter in the specified unit of measure.
      double[] doubleValueList()
      Returns an ordered sequence of two or more numeric values of an operation parameter list, where each value has the same associated unit of measure.
      double[] doubleValueList​(Unit<?> unit)
      Returns an ordered sequence of numeric values in the specified unit of measure.
      static <T> T ensureValidValue​(ParameterDescriptor<T> descriptor, Object value)
      Ensures that the given value is valid according the specified parameter descriptor.
      boolean equals​(Object object)
      Compares the specified object with this parameter for equality.
      ParameterDescriptor<T> getDescriptor()
      Returns the abstract definition of this parameter.
      Unit<?> getUnit()
      Returns the unit of measure of the parameter value.
      T getValue()
      Returns the parameter value as an object.
      int hashCode()
      Returns a hash value for this parameter.
      int intValue()
      Returns the positive integer value of an operation parameter, usually used for a count.
      int[] intValueList()
      Returns an ordered sequence of two or more integer values of an operation parameter list, usually used for counts.
      void setValue​(boolean value)
      Sets the parameter value as a boolean.
      void setValue​(double value)
      Sets the parameter value as a floating point.
      void setValue​(double[] values, Unit<?> unit)
      Set the parameter value as an array of floating point and their associated unit.
      void setValue​(double value, Unit<?> unit)
      Sets the parameter value as a floating point and its associated unit.
      void setValue​(int value)
      Sets the parameter value as an integer.
      void setValue​(Object value)
      Set the parameter value as an object.
      String stringValue()
      Returns the string value of an operation parameter.
      URI valueFile()
      Returns a reference to a file or a part of a file containing one or more parameter values.
      • Methods inherited from class Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Parameter

        public Parameter​(ParameterDescriptor<T> descriptor)
        Constructs a parameter value from the specified descriptor. The value will be initialized to the default value, if any.
        Parameters:
        descriptor - The abstract definition of this parameter.
      • Parameter

        public Parameter​(ParameterDescriptor<T> descriptor,
                         T value)
                  throws InvalidParameterValueException
        Constructs a parameter value from the specified descriptor and value.
        Parameters:
        descriptor - The abstract definition of this parameter.
        value - The parameter value.
        Throws:
        InvalidParameterValueException - if the type of value is inappropriate for this parameter, or if the value is illegal for some other reason (for example the value is numeric and out of range).
    • Method Detail

      • create

        public static Parameter<Integer> create​(String name,
                                                int value)
        Constructs a parameter from the specified name and value. This convenience constructor creates a DefaultParameterDescriptor object. But if such an object is available, then the preferred way to get a ParameterValue is to invoke ParameterDescriptor.createValue().
        Parameters:
        name - The parameter name.
        value - The parameter value.
        Returns:
        A new parameter instance for the given name and value.
        Since:
        2.5
      • create

        public static Parameter<Double> create​(String name,
                                               double value,
                                               Unit<?> unit)
        Constructs a parameter from the specified name and value. This convenience constructor creates a DefaultParameterDescriptor object. But if such an object is available, then the preferred way to get a ParameterValue is to invoke ParameterDescriptor.createValue().
        Parameters:
        name - The parameter name.
        value - The parameter value.
        unit - The unit for the parameter value.
        Returns:
        A new parameter instance for the given name and value.
        Since:
        2.5
      • create

        public static <T extends CodeListParameter<T> create​(String name,
                                                               Class<T> type,
                                                               T value)
        Constructs a parameter from the specified code list. This convenience constructor creates a DefaultParameterDescriptor object. But if such an object is available, then the preferred way to get a ParameterValue is to invoke ParameterDescriptor.createValue().
        Type Parameters:
        T - The parameter type.
        Parameters:
        name - The parameter name.
        type - The parameter type.
        value - The parameter value.
        Returns:
        A new parameter instance for the given name and value.
        Since:
        2.5
      • ensureValidValue

        public static <T> T ensureValidValue​(ParameterDescriptor<T> descriptor,
                                             Object value)
                                      throws InvalidParameterValueException
        Ensures that the given value is valid according the specified parameter descriptor. This convenience method ensures that value is assignable to the expected class, is between the minimum and maximum values and is one of the set of valid values. If the value fails any of those tests, then an exception is thrown.

        This method is similar to Parameters#isValid(descriptor, value) except that the exception contains an error message formatted with a description of the failure reason.

        Type Parameters:
        T - The type of parameter value. The given value should typically be an instance of this class. This is not required by this method signature but is checked by this method implementation.
        Parameters:
        descriptor - The parameter descriptor to check against.
        value - The value to check, or null.
        Returns:
        The value casted to the descriptor parameterized type.
        Throws:
        InvalidParameterValueException - if the parameter value is invalid.
      • getUnit

        public Unit<?> getUnit()
        Returns the unit of measure of the parameter value. If the parameter value has no unit (for example because it is a String type), then this method returns null. Note that "no unit" doesn't means "dimensionless".
        Specified by:
        getUnit in interface ParameterValue<T>
        Returns:
        The unit of measure, or null if none.
        See Also:
        doubleValue(), doubleValueList(), getValue()
      • doubleValue

        public double doubleValue​(Unit<?> unit)
                           throws InvalidParameterTypeException
        Returns the numeric value of the coordinate operation parameter in the specified unit of measure. This convenience method apply unit conversion on the fly as needed.
        Specified by:
        doubleValue in interface ParameterValue<T>
        Parameters:
        unit - The unit of measure for the value to be returned.
        Returns:
        The numeric value represented by this parameter after conversion to type double and conversion to unit.
        Throws:
        InvalidParameterTypeException - if the value is not a numeric type.
        IllegalArgumentException - if the specified unit is invalid for this parameter.
        See Also:
        getUnit(), setValue(double,Unit), doubleValueList(Unit)
      • doubleValueList

        public double[] doubleValueList​(Unit<?> unit)
                                 throws InvalidParameterTypeException
        Returns an ordered sequence of numeric values in the specified unit of measure. This convenience method apply unit conversion on the fly as needed.
        Specified by:
        doubleValueList in interface ParameterValue<T>
        Parameters:
        unit - The unit of measure for the value to be returned.
        Returns:
        The sequence of values represented by this parameter after conversion to type double and conversion to unit.
        Throws:
        InvalidParameterTypeException - if the value is not an array of doubles.
        IllegalArgumentException - if the specified unit is invalid for this parameter.
        See Also:
        getUnit(), setValue(double[],Unit), doubleValue(Unit)
      • valueFile

        public URI valueFile()
                      throws InvalidParameterTypeException
        Returns a reference to a file or a part of a file containing one or more parameter values. When referencing a part of a file, that file must contain multiple identified parts, such as an XML encoded document. Furthermore, the referenced file or part of a file can reference another part of the same or different files, as allowed in XML documents.
        Specified by:
        valueFile in interface ParameterValue<T>
        Returns:
        The reference to a file containing parameter values.
        Throws:
        InvalidParameterTypeException - if the value is not a reference to a file or an URI.
        See Also:
        getValue(), setValue(Object)
      • getValue

        public T getValue()
        Returns the parameter value as an object. The object type is typically a Double, Integer, Boolean, String, URI, double[] or int[].
        Specified by:
        getValue in interface ParameterValue<T>
        Returns:
        The parameter value as an object.
        See Also:
        setValue(Object)
      • setValue

        public void setValue​(Object value)
                      throws InvalidParameterValueException
        Set the parameter value as an object. The object type is typically a Double, Integer, Boolean, String, URI, double[] or int[].
        Specified by:
        setValue in interface ParameterValue<T>
        Parameters:
        value - The parameter value.
        Throws:
        InvalidParameterValueException - if the type of value is inappropriate for this parameter, or if the value is illegal for some other reason (for example the value is numeric and out of range).
        See Also:
        getValue()
      • setValue

        public void setValue​(double[] values,
                             Unit<?> unit)
                      throws InvalidParameterValueException
        Set the parameter value as an array of floating point and their associated unit.
        Specified by:
        setValue in interface ParameterValue<T>
        Parameters:
        values - The parameter values.
        unit - The unit for the specified value.
        Throws:
        InvalidParameterValueException - if the floating point type is inappropriate for this parameter, or if the value is illegal for some other reason (for example a value out of range).
      • equals

        public boolean equals​(Object object)
        Compares the specified object with this parameter for equality.
        Overrides:
        equals in class AbstractParameter
        Parameters:
        object - The object to compare to this.
        Returns:
        true if both objects are equal.
      • hashCode

        public int hashCode()
        Returns a hash value for this parameter.
        Overrides:
        hashCode in class AbstractParameter
        Returns:
        The hash code value. This value doesn't need to be the same in past or future versions of this class.