Package com.mckoi.database

## Class CorrelatedVariable

- java.lang.Object
- - com.mckoi.database.CorrelatedVariable

All Implemented Interfaces:
  `java.io.Serializable`, `java.lang.Cloneable`

    public class CorrelatedVariable
    extends java.lang.Object
    implements java.lang.Cloneable, java.io.Serializable

A wrapper for a variable in a sub-query that references a column outside of the current query. A correlated variable differs from a regular variable because its value is constant in an operation, but may vary over future iterations of the operation.

This object is NOT immutable.

Author:
  Tobias Downer
See Also:
  Serialized Form

### Constructor Summary

Constructors
`CorrelatedVariable​(Variable variable, int level_offset)` Constructs the CorrelatedVariable.

### Method Summary

All Methods Instance Methods Concrete Methods
`java.lang.Object` `clone()` Clones the object.
`TObject` `getEvalResult()` Returns the value this correlated variable evaluates to.
`int` `getQueryLevelOffset()` Returns the number of sub-query branches back that the reference for this variable can be found.
`Variable` `getVariable()` Returns the wrapped Variable.
`TType` `returnTType()` Returns the TType this correlated variable evaluates to.
`void` `setEvalResult​(TObject ob)` Sets the value this correlated variable evaluates to.
`void` `setFromResolver​(VariableResolver resolver)` Given a VariableResolver this will set the value of the correlated variable.
`java.lang.String` `toString()`

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

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

### Constructor Detail

#### CorrelatedVariable

    public CorrelatedVariable​(Variable variable,
                              int level_offset)

Constructs the CorrelatedVariable.

### Method Detail

#### getVariable

    public Variable getVariable()

Returns the wrapped Variable.

#### getQueryLevelOffset

    public int getQueryLevelOffset()

Returns the number of sub-query branches back that the reference for this variable can be found. For example, if the correlated variable references the direct descendant this will return 1.

#### setEvalResult

    public void setEvalResult​(TObject ob)

Sets the value this correlated variable evaluates to.

#### setFromResolver

    public void setFromResolver​(VariableResolver resolver)

Given a VariableResolver this will set the value of the correlated variable.

#### getEvalResult

    public TObject getEvalResult()

Returns the value this correlated variable evaluates to.

#### returnTType

    public TType returnTType()

Returns the TType this correlated variable evaluates to.

#### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

Clones the object.

Overrides:
  `clone` in class `java.lang.Object`
Throws:
  `java.lang.CloneNotSupportedException`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`