Class RelativeNumericProperty

java.lang.Object
org.apache.fop.fo.properties.Property
org.apache.fop.fo.expr.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.
  • Field Details

  • Constructor Details

    • 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 Details

    • 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 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 Object
    • equals

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