Class SizePropertyDefinition

  • All Implemented Interfaces:
    Comparable<PropertyDefinition<?>>, Comparator<Long>

    public final class SizePropertyDefinition
    extends PropertyDefinition<Long>
    Memory size property definition.

    All memory size property values are represented in bytes using longs.

    All values must be zero or positive and within the lower/upper limit constraints. Support is provided for "unlimited" memory sizes. These are represented using a negative memory size value or using the string "unlimited".

    • Method Detail

      • createBuilder

        public static SizePropertyDefinition.Builder createBuilder​(AbstractManagedObjectDefinition<?,​?> d,
                                                                   String propertyName)
        Create an memory size property definition builder.
        Parameters:
        d - The managed object definition associated with this property definition.
        propertyName - The property name.
        Returns:
        Returns the new integer property definition builder.
      • getLowerLimit

        public long getLowerLimit()
        Get the lower limit in bytes.
        Returns:
        Returns the lower limit in bytes.
      • getUpperLimit

        public Long getUpperLimit()
        Get the upper limit in bytes.
        Returns:
        Returns the upper limit in bytes or null if there is no upper limit.
      • isAllowUnlimited

        public boolean isAllowUnlimited()
        Determine whether this property allows unlimited memory sizes.
        Returns:
        Returns true if this this property allows unlimited memory sizes.
      • validateValue

        public void validateValue​(Long value)
        Description copied from class: PropertyDefinition
        Determine if the provided property value is valid according to this property definition.
        Specified by:
        validateValue in class PropertyDefinition<Long>
        Parameters:
        value - The property value (must not be null).
      • encodeValue

        public String encodeValue​(Long value)
        Description copied from class: PropertyDefinition
        Encode the provided property value into its string representation.

        This default implementation simply returns invokes the Object.toString() method on the provided value.

        Overrides:
        encodeValue in class PropertyDefinition<Long>
        Parameters:
        value - The property value (must not be null).
        Returns:
        Returns the encoded property string value.
      • decodeValue

        public Long decodeValue​(String value)
        Description copied from class: PropertyDefinition
        Parse and validate a string representation of a property value.
        Specified by:
        decodeValue in class PropertyDefinition<Long>
        Parameters:
        value - The property string value (must not be null).
        Returns:
        Returns the decoded property value.
      • accept

        public <R,​P> R accept​(PropertyDefinitionVisitor<R,​P> v,
                                    P p)
        Description copied from class: PropertyDefinition
        Apply a visitor to this property definition.
        Specified by:
        accept in class PropertyDefinition<Long>
        Type Parameters:
        R - The return type of the visitor's methods.
        P - The type of the additional parameters to the visitor's methods.
        Parameters:
        v - The property definition visitor.
        p - Optional additional visitor parameter.
        Returns:
        Returns a result as specified by the visitor.
      • accept

        public <R,​P> R accept​(PropertyValueVisitor<R,​P> v,
                                    Long value,
                                    P p)
        Description copied from class: PropertyDefinition
        Apply a visitor to a property value associated with this property definition.
        Specified by:
        accept in class PropertyDefinition<Long>
        Type Parameters:
        R - The return type of the visitor's methods.
        P - The type of the additional parameters to the visitor's methods.
        Parameters:
        v - The property value visitor.
        value - The property value.
        p - Optional additional visitor parameter.
        Returns:
        Returns a result as specified by the visitor.
      • toString

        public void toString​(StringBuilder builder)
        Description copied from class: PropertyDefinition
        Append a string representation of the property definition to the provided string builder.

        This simple implementation just outputs the propertyName of the property definition. Sub-classes should override this method to provide more complete string representations.

        Overrides:
        toString in class PropertyDefinition<Long>
        Parameters:
        builder - The string builder where the string representation should be appended.
      • compare

        public int compare​(Long o1,
                           Long o2)
        Description copied from class: PropertyDefinition
        Compares two property values for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

        This default implementation normalizes both values using PropertyDefinition.normalizeValue(Object) and then performs a case-sensitive string comparison.

        Specified by:
        compare in interface Comparator<Long>
        Overrides:
        compare in class PropertyDefinition<Long>
        Parameters:
        o1 - the first object to be compared.
        o2 - the second object to be compared.
        Returns:
        a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.