RelativeNumericProperty (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.fo.expr

## 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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ABS` ABS
    `static int` | `ADDITION` ADDITION
    `static int` | `DIVIDE` DIVIDE
    `static int` | `MAX` MAX
    `static int` | `MIN` MIN
    `static int` | `MODULO` MODULO
    `static int` | `MULTIPLY` MULTIPLY
    `static int` | `NEGATE` NEGATE
    `static int` | `SUBTRACTION` SUBTRACTION

    - ### Fields inherited from class org.apache.fop.fo.properties.Property

      `log`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RelativeNumericProperty(int operation, Numeric op)` Constructor for a one argument operation.
    `RelativeNumericProperty(int operation, Numeric op1, Numeric op2)` Constructor for a two argument operation.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object obj)`
    `int` | `getDimension()` Return the dimension of the expression
    `Length` | `getLength()` Cast this numeric as a Length.
    `Numeric` | `getNumeric()` This method expects to be overridden by subclasses
    `double` | `getNumericValue()` Return the resolved (calculated) value of the expression.
    `double` | `getNumericValue(PercentBaseContext context)` Return the value of this Numeric
    `double` | `getTableUnits()` Return the number of table units which are included in this length specification.
    `int` | `getValue()` Returns the length in 1/1000ths of a point (millipoints)
    `int` | `getValue(PercentBaseContext context)` Returns the length in 1/1000ths of a point (millipoints)
    `int` | `hashCode()`
    `boolean` | `isAbsolute()` Return false since an expression is only created when there is relative numerics involved.
    `String` | `toString()` Return a string represention of the expression.

    - ### Methods inherited from class org.apache.fop.fo.properties.Property

      `getCharacter, getColor, getCondLength, getEnum, getKeep, getLengthPair, getLengthRange, getList, getNCname, getNumber, getObject, getSpace, getSpecifiedValue, getString, isAuto, setSpecifiedValue`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.fop.datatypes.Numeric

      `getEnum`

- - ### Field Detail

    - #### ADDITION

          public static final int ADDITION

      ADDITION
      See Also:
        Constant Field Values

    - #### SUBTRACTION

          public static final int SUBTRACTION

      SUBTRACTION
      See Also:
        Constant Field Values

    - #### MULTIPLY

          public static final int MULTIPLY

      MULTIPLY
      See Also:
        Constant Field Values

    - #### DIVIDE

          public static final int DIVIDE

      DIVIDE
      See Also:
        Constant Field Values

    - #### MODULO

          public static final int MODULO

      MODULO
      See Also:
        Constant Field Values

    - #### NEGATE

          public static final int NEGATE

      NEGATE
      See Also:
        Constant Field Values

    - #### ABS

          public static final int ABS

      ABS
      See Also:
        Constant Field Values

    - #### MAX

          public static final int MAX

      MAX
      See Also:
        Constant Field Values

    - #### MIN

          public static final int MIN

      MIN
      See Also:
        Constant Field Values

  - ### 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

    - #### 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`

Copyright © 2025 Apache Software Foundation. All rights reserved.