DefinedEntry (API documentation of hlt.language packages)
Date: 2013-01-30

hlt.language.design.types

## Class DefinedEntry

- java.lang.Object
- - hlt.language.design.types.CodeEntry
  - - hlt.language.design.types.DefinedEntry

-     public class DefinedEntry
      extends CodeEntry

  This class extends `CodeEntry` for the specific case of user-defined (as opposed to built-in) code entries.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class hlt.language.design.types.CodeEntry

      `CodeEntry.CodeId`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefinedEntry(Symbol symbol, Type type)`
    `DefinedEntry(Type type)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Instruction[]` | `code()`
    `int` | `fieldOffset()`
    `byte` | `fieldSort()`
    `Type` | `fieldType()`
    `boolean` | `hasNoCode()`
    `Instruction[]` | `initCode()`
    `boolean` | `isDefinedField()` Indicates that this code entry is that of a defined class field.
    `boolean` | `isField()` Indicates that this code entry is that of a class field, although this may be a code entry that is undefined as yet.
    `boolean` | `isInlinable()`
    `boolean` | `isProjection()` Indicates that this code entry is that of a named tuple projection.
    `boolean` | `isSetOnEvaluation()`
    `boolean` | `isUnsafe()`
    `ClassType` | `objectType()`
    `TupleComponentInstruction` | `projection()`
    `void` | `registerReleasableEntry(CodeEntry entry)` Adds the specified code entry to the set of releasable entries of this code entry.
    `void` | `registerUnsafeEntry(CodeEntry entry)` Adds the specified code entry to the set of unsafe entries of this code entry.
    `void` | `releaseUnsafeEntries()` Releases all releasable entries of the unsafe entries of this `CodeEntry`.
    `void` | `removeUnsafeEntry(CodeEntry entry)` Removes the specified code entry from the set of usafe entries of this code entry, and sets the latter to `null` if it becomes empty.
    `void` | `setCode(Instruction[] code)`
    `void` | `setFieldInfo()` Sets this code entry to be a defined class field's.
    `void` | `setInitCode()`
    `void` | `setInlinable(boolean flag)`
    `DefinedEntry` | `setIsField()` Sets this code entry to be that of a class field (defined or not), and returns this defined entry.
    `DefinedEntry` | `setIsProjection()` Sets this code entry to be that of a named tuple projection.
    `void` | `setOnEvaluation()`
    `void` | `setValue(double value)`
    `void` | `setValue(int value)`
    `void` | `setValue(java.lang.Object value)`
    `void` | `showCode()`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class hlt.language.design.types.CodeEntry

      `equals, getId, isBuiltIn, showCode, showCode, showCode, symbol, type`

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

      `getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### DefinedEntry

          public DefinedEntry(Type type)

    - #### DefinedEntry

          public DefinedEntry(Symbol symbol,
                      Type type)

  - ### Method Detail

    - #### isProjection

          public final boolean isProjection()

      Indicates that this code entry is that of a named tuple projection.
      Overrides:
        `isProjection` in class `CodeEntry`

    - #### setIsProjection

          public final DefinedEntry setIsProjection()

      Sets this code entry to be that of a named tuple projection.

    - #### isField

          public final boolean isField()

      Indicates that this code entry is that of a class field, although this may be a code entry that is undefined as yet.
      Overrides:
        `isField` in class `CodeEntry`

    - #### setIsField

          public final DefinedEntry setIsField()

      Sets this code entry to be that of a class field (defined or not), and returns this defined entry.

    - #### isDefinedField

          public final boolean isDefinedField()

      Indicates that this code entry is that of a defined class field.
      Overrides:
        `isDefinedField` in class `CodeEntry`

    - #### setFieldInfo

          public final void setFieldInfo()

      Sets this code entry to be a defined class field's.

    - #### fieldSort

          public final byte fieldSort()

    - #### fieldOffset

          public final int fieldOffset()

    - #### objectType

          public final ClassType objectType()

    - #### fieldType

          public final Type fieldType()

    - #### isSetOnEvaluation

          public final boolean isSetOnEvaluation()

    - #### setOnEvaluation

          public final void setOnEvaluation()

    - #### initCode

          public final Instruction[] initCode()

    - #### setInlinable

          public final void setInlinable(boolean flag)

    - #### isInlinable

          public final boolean isInlinable()

    - #### projection

          public final TupleComponentInstruction projection()

    - #### setCode

          public final void setCode(Instruction[] code)

    - #### code

          public final Instruction[] code()

    - #### hasNoCode

          public final boolean hasNoCode()

    - #### isUnsafe

          public final boolean isUnsafe()

    - #### registerUnsafeEntry

          public final void registerUnsafeEntry(CodeEntry entry)

      Adds the specified code entry to the set of unsafe entries of this code entry.

    - #### removeUnsafeEntry

          public final void removeUnsafeEntry(CodeEntry entry)

      Removes the specified code entry from the set of usafe entries of this code entry, and sets the latter to `null` if it becomes empty.

    - #### registerReleasableEntry

          public final void registerReleasableEntry(CodeEntry entry)

      Adds the specified code entry to the set of releasable entries of this code entry.

    - #### releaseUnsafeEntries

          public final void releaseUnsafeEntries()

      Releases all releasable entries of the unsafe entries of this `CodeEntry`. If this contains unsafe entries, any releasable entry being released also has its unsafe set augmented with this entry's unsafe set.

    - #### setValue

          public final void setValue(int value)

    - #### setValue

          public final void setValue(double value)

    - #### setValue

          public final void setValue(java.lang.Object value)

    - #### setInitCode

          public final void setInitCode()

    - #### showCode

          public final void showCode()

    - #### toString

          public final java.lang.String toString()

      Overrides:
        `toString` in class `CodeEntry`