Class RelativeNumericProperty

  • All Implemented Interfaces:
    Length, Numeric

    public class RelativeNumericProperty
    extends Property
    implements Length
    This class represent a node in a property expression tree. It is created when an operation involve relative expression and is used to delay evaluation of the operation until the time where getNumericValue() or getValue() is called.
    • Constructor Detail

      • RelativeNumericProperty

        public RelativeNumericProperty​(int operation,
                                       Numeric op1,
                                       Numeric op2)
        Constructor for a two argument operation.
        Parameters:
        operation - the operation opcode: ADDITION, SUBTRACTION, ...
        op1 - the first operand.
        op2 - the second operand
      • RelativeNumericProperty

        public RelativeNumericProperty​(int operation,
                                       Numeric op)
        Constructor for a one argument operation.
        Parameters:
        operation - the operation opcode: NEGATE, ABS
        op - the operand.
    • Method Detail

      • getResolved

        private Numeric getResolved​(PercentBaseContext context)
                             throws PropertyException
        Return a resolved (calculated) Numeric with the value of the expression.
        Parameters:
        context - Evaluation context
        Returns:
        the resolved Numeric corresponding to the value of the expression
        Throws:
        PropertyException - when an exception occur during evaluation.
      • getNumericValue

        public double getNumericValue()
        Return the resolved (calculated) value of the expression. Return the value of this Numeric
        Specified by:
        getNumericValue in interface Numeric
        Returns:
        the computed value.
      • getNumericValue

        public double getNumericValue​(PercentBaseContext context)
        Return the value of this Numeric
        Specified by:
        getNumericValue in interface Numeric
        Parameters:
        context - The context for the length calculation (for percentage based lengths)
        Returns:
        the computed value.
      • getDimension

        public int getDimension()
        Return the dimension of the expression
        Specified by:
        getDimension in interface Numeric
        Returns:
        numeric value as dimension
      • isAbsolute

        public boolean isAbsolute()
        Return false since an expression is only created when there is relative numerics involved.
        Specified by:
        isAbsolute in interface Numeric
        Returns:
        true if expression is absolute
      • getLength

        public Length getLength()
        Cast this numeric as a Length.
        Overrides:
        getLength in class Property
        Returns:
        numeric value as length
      • getNumeric

        public Numeric getNumeric()
        Description copied from class: Property
        This method expects to be overridden by subclasses
        Overrides:
        getNumeric in class Property
        Returns:
        numeric value
      • getValue

        public int getValue()
        Returns the length in 1/1000ths of a point (millipoints)
        Specified by:
        getValue in interface Length
        Specified by:
        getValue in interface Numeric
        Returns:
        the length in millipoints
      • getValue

        public int getValue​(PercentBaseContext context)
        Returns the length in 1/1000ths of a point (millipoints)
        Specified by:
        getValue in interface Length
        Specified by:
        getValue in interface Numeric
        Parameters:
        context - The context for the length calculation (for percentage based lengths)
        Returns:
        the length in millipoints
      • getTableUnits

        public double getTableUnits()
        Return the number of table units which are included in this length specification. This will always be 0 unless the property specification used the proportional-column-width() function (only on table column FOs).

        If this value is not 0, the actual value of the Length cannot be known without looking at all of the columns in the table to determine the value of a "table-unit".

        Returns:
        The number of table units which are included in this length specification.
      • toString

        public java.lang.String toString()
        Return a string represention of the expression. Only used for debugging.
        Overrides:
        toString in class Property
        Returns:
        the string representation.
      • hashCode

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

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object