OPload (JEL API)
Description: declaration: package: gnu.jel, class: OPload

Package gnu.jel

# Class OPload

java.lang.Object
gnu.jel.OP
gnu.jel.OPload

    public class OPload
    extends OP

A tree node, representing loading of a constant.

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `java.lang.Object` | `what` | Holds an object to be loaded

  ### Fields inherited from class gnu.jel.OP

  `chi, resID, resType, specialTypes, unwrapType`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `OPload​(OP instead, java.lang.Object what)` | Creates an OP, loading a constant to be put instead of another OP.
  `OPload​(java.lang.Object what)` | Creates an OP, loading a constant.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `compile​(ClassFile cf)` | Called to generate the code implementing this OP.
  `java.lang.Object` | `eval()` | Called to evaluate this node and all its sub-nodes.

  ### Methods inherited from class gnu.jel.OP

  `isWidening, isWidening, narrow, typeID, typeIDObject, widen`

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

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### what

    public java.lang.Object what
    Holds an object to be loaded

- ## Constructor Details

  - ### OPload

    public OPload​(java.lang.Object what)
    Creates an OP, loading a constant.
    Parameters:
      `what` - is a constant wrapped into a reflection object. E.g `java.lang.Integer(1)` to load `1` of primitive type `int`.

  - ### OPload

    public OPload​(OP instead, java.lang.Object what)
    Creates an OP, loading a constant to be put instead of another OP.

    For private JEL usage in constants folding.

    Parameters:
      `instead` - an OP, which will be raplaced by this OPload.
      `what` - is a constant wrapped into a reflection object. E.g `java.lang.Integer(1)` to load `1` of primitive type `int`.

- ## Method Details

  - ### eval

    public java.lang.Object eval() throws java.lang.Exception
    Description copied from class: `OP`
    Called to evaluate this node and all its sub-nodes.

    Upon success this node is to be replaced by the constant node holding the returned object.

    Specified by:
      `eval` in class `OP`
    Returns:
      an object to which this node evaluates
    Throws:
      `java.lang.Exception`

  - ### compile

    public void compile​(ClassFile cf)
    Description copied from class: `OP`
    Called to generate the code implementing this OP.
    Specified by:
      `compile` in class `OP`
    Parameters:
      `cf` - class file with a new open method to write the code into.