Class NumberProperty

  • All Implemented Interfaces:
    PropertyVisitorAcceptor, java.lang.Cloneable

    @OpenApiAll
    public class NumberProperty
    extends Property
    The property for storing and editing some number value in Double, Float or Int formats.
    • Field Detail

      • PATTERN

        public static final java.lang.String PATTERN
        Patters which is used to format the number. This pattern should be set to the additional properties of NumberProperty
        See Also:
        Constant Field Values
      • mType

        private int mType
        The number type. By default is INT.
      • mHighRange

        private double mHighRange
        The highest range of number's value.
      • mLowRange

        private double mLowRange
        The lowest range of number's value.
      • mSoftRange

        private boolean mSoftRange
        Allow the property to cross the range boundaries.
    • Constructor Detail

      • NumberProperty

        public NumberProperty()
        Default constructor for INT property. Value of the property will be 0. ID will be empty string.
      • NumberProperty

        public NumberProperty​(java.lang.String id,
                              @CheckForNull
                              java.lang.Double value,
                              int type,
                              double low,
                              double high)
        The property constructor.
        Parameters:
        id - the ID of property.
        value - the number value of the property.
        type - the number type (INT, DOUBLE or FLOAT).
        low - lowest range of the number.
        high - highest range of the number.
      • NumberProperty

        public NumberProperty​(java.lang.String id,
                              int value,
                              double low,
                              double high)
        The property constructor. Type of number will be INT.
        Parameters:
        id - the ID of property.
        value - the value of the property.
        low - lowest range of the number.
        high - highest range of the number.
      • NumberProperty

        public NumberProperty​(java.lang.String id,
                              float value,
                              double low,
                              double high)
        The property constructor. Type of number will be FLOAT.
        Parameters:
        id - the ID of property.
        value - the value of the property.
        low - lowest range of the number.
        high - highest range of the number.
      • NumberProperty

        public NumberProperty​(java.lang.String id,
                              double value,
                              double low,
                              double high)
        The property constructor. Type of number will be DOUBLE.
        Parameters:
        id - the ID of property.
        value - the value of the property.
        low - lowest range of the number.
        high - highest range of the number.
      • NumberProperty

        public NumberProperty​(java.lang.String id,
                              long value,
                              double low,
                              double high)
        The property constructor. Type of number will be LONG.
        Parameters:
        id - the ID of property.
        value - the value of the property.
        low - lowest range of the number.
        high - highest range of the number.
    • Method Detail

      • getValueStringRepresentation

        public java.lang.String getValueStringRepresentation()
        Returns value's string representation.
        Overrides:
        getValueStringRepresentation in class Property
        Returns:
        the string representation of the number.
      • getPattern

        @CheckForNull
        public static java.lang.String getPattern​(Property property)
      • getStringRepresentation

        public static java.lang.String getStringRepresentation​(int type,
                                                               @CheckForNull
                                                               java.lang.Double value,
                                                               @CheckForNull
                                                               java.lang.String pattern)
      • getStringRepresentation

        public static java.lang.String getStringRepresentation​(int type,
                                                               @CheckForNull
                                                               java.lang.Double value)
      • toDouble

        @CheckForNull
        public static java.lang.Double toDouble​(java.lang.Number number)
      • getInteger

        public int getInteger()
        Returns value as int (primitive type).
        Returns:
        property value as int. 0 if value is null
      • getLong

        public long getLong()
        Returns value as long (primitive type).
        Returns:
        property value as long. 0 if value is null
      • getDouble

        public double getDouble()
        Returns value as double (primitive type).
        Returns:
        property value as double. 0 if value is null
      • getFloat

        public float getFloat()
        Returns value as float (primitive type).
        Returns:
        property value as float. 0 if value is null
      • getDoubleObject

        @CheckForNull
        public java.lang.Double getDoubleObject()
        Returns value as Double object.
        Returns:
        property value as Double.
      • setValue

        public void setValue​(int value)
        Sets value as primitive integer.
        Parameters:
        value - a new integer value.
      • setValue

        public void setValue​(double value)
        Sets value as primitive double type.
        Parameters:
        value - a new double value.
      • setValue

        public void setValue​(float value)
        Sets value as primitive float type.
        Parameters:
        value - a new float value.
      • setValue

        public void setValue​(java.lang.Object value)
        Description copied from class: Property
        Sets new property value. Will fire a PropertyChangeEvent with propertyName - property ID, newValue and oldValue.
        Overrides:
        setValue in class Property
        Parameters:
        value - a new property value.
      • isValueCompatible

        protected boolean isValueCompatible​(java.lang.Object value)
        Overrides:
        isValueCompatible in class Property
        Returns:
        true if given object can be assigned as value to this property
      • getValue

        @CheckForNull
        public java.lang.Object getValue()
        Description copied from class: Property
        Returns properties value.
        Overrides:
        getValue in class Property
        Returns:
        value of the property.
      • getNumberType

        public int getNumberType()
        Returns type of the number.
        Returns:
        number type - INT, DOUBLE or FLOAT.
      • setNumberType

        public void setNumberType​(int type)
        Sets type of the number.
        Parameters:
        type - the number type - INT, DOUBLE or FLOAT.
      • getLowRange

        public double getLowRange()
        Returns lowest range of the number value.
        Returns:
        lowest range.
      • getHighRange

        public double getHighRange()
        Returns highest range of the value.
        Returns:
        highest range.
      • setLowRange

        public void setLowRange​(double range)
        Returns lowest range of the value.
        Parameters:
        range - the lowest range.
      • setHighRange

        public void setHighRange​(double range)
        Returns highest range of the value.
        Parameters:
        range - the highest range.
      • hasError

        @CheckForNull
        public static java.lang.String hasError​(NumberProperty property,
                                                java.lang.String newNumber)
                                         throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • isSoftRange

        public boolean isSoftRange()
        Returns:
        Property is not allowed to cross the range boundaries.
      • setSoftRange

        public void setSoftRange​(boolean softRange)
        Parameters:
        softRange - Property is allowed to cross the range boundaries. Default is false.
      • clone

        public NumberProperty clone()
        Description copied from class: Property
        Clones the property. Clone is not deep, the clone will have the same instance of value. The clone will not have registered PropertyChangeListeners.
        Overrides:
        clone in class Property
        Returns:
        the cloned property.