Package weka.core.expressionlanguage.weka

# Class InstancesHelper

java.lang.Object
weka.core.expressionlanguage.weka.InstancesHelper

All Implemented Interfaces:
  `Serializable`, `Macro`, `MacroDeclarations`, `VariableDeclarations`

public class InstancesHelper extends Object implements VariableDeclarations, Macro, MacroDeclarations
A helper class to expose instance values and macros for instance values to a program Exposes instance values of the current instance (see `setInstance(Instance)` and `setInstance(int)` methods) as a1, A1 or ATT1 etc where the number is the attribute index (starting with 1). Furthermore exposes the class value as CLASS. Exposes the '`ismissing`' macro which can only be applied to instance values and returns whether the value is set as missing in the current instance.

Version:
  $Revision: 1000 $
Author:
  Benjamin Weber ( benweber at student dot ethz dot ch )
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `InstancesHelper(Instances dataset)`
  Constructs an `InstancesHelper` for the given dataset.
  `InstancesHelper(Instances dataset, boolean retainData)`
  Constructs an `InstancesHelper` for the given dataset.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Node`
  `evaluate(Node... params)`
  Evaluates the 'ismissing' macro
  `Macro`
  `getMacro(String name)`
  Tries to fetch a macro
  `Node`
  `getVariable(String name)`
  Tries to fetch a variable of an instance value
  `boolean`
  `hasMacro(String name)`
  Whether the given macro is declared
  `boolean`
  `hasVariable(String name)`
  Returns whether the variable is declared
  `boolean`
  `missingAccessed()`
  Whether a missing value has been evaluated during computation.
  `void`
  `setInstance(int i)`
  Sets the instance at index i of the supplied dataset to be the current instance
  `void`
  `setInstance(Instance instance)`
  Sets the current instance to be the supplied instance

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

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

- ## Constructor Details

  - ### InstancesHelper

    public InstancesHelper(Instances dataset)
    Constructs an `InstancesHelper` for the given dataset. Only attribute information is retained in memory.
    Parameters:
      `dataset` - the dataset whose attribute values should be exposed

  - ### InstancesHelper

    public InstancesHelper(Instances dataset, boolean retainData)
    Constructs an `InstancesHelper` for the given dataset.
    Parameters:
      `dataset` - the dataset
      `retainData` - true if the full dataset (rather than just the attribute information) is to be retained

- ## Method Details

  - ### hasMacro

    public boolean hasMacro(String name)
    Whether the given macro is declared
    Specified by:
      `hasMacro` in interface `MacroDeclarations`
    Parameters:
      `name` - name of the macro
    Returns:
      whether the given macro is declared

  - ### getMacro

    public Macro getMacro(String name)
    Tries to fetch a macro The same invariant of `MacroDeclarations` applies here too.
    Specified by:
      `getMacro` in interface `MacroDeclarations`
    Parameters:
      `name` - of the macro
    Returns:
      the macro

  - ### evaluate

    public Node evaluate(Node... params) throws SemanticException
    Evaluates the 'ismissing' macro
    Specified by:
      `evaluate` in interface `Macro`
    Parameters:
      `params` - the arguments for the macro
    Returns:
      an AST node representing the ismissing function
    Throws:
      `SemanticException`

  - ### setInstance

    public void setInstance(int i)
    Sets the instance at index i of the supplied dataset to be the current instance
    Parameters:
      `i` - the index of the instance to be set
    Throws:
      `UnsupportedOperationException` - if the full dataset has not been retained in memory

  - ### setInstance

    public void setInstance(Instance instance)
    Sets the current instance to be the supplied instance
    Parameters:
      `instance` - instance to be set as the current instance

  - ### missingAccessed

    public boolean missingAccessed()
    Whether a missing value has been evaluated during computation. Will be reset when the `setInstance(int)` or `setInstance(Instance)` method is called.
    Returns:
      whether a missing value has been evaluated during computation

  - ### hasVariable

    public boolean hasVariable(String name)
    Returns whether the variable is declared
    Specified by:
      `hasVariable` in interface `VariableDeclarations`
    Parameters:
      `name` - name of the variable
    Returns:
      whether it has been declared

  - ### getVariable

    public Node getVariable(String name)
    Tries to fetch a variable of an instance value The same invariant of `VariableDeclarations` applies here too.
    Specified by:
      `getVariable` in interface `VariableDeclarations`
    Parameters:
      `name` - name of the variable
    Returns:
      node representing the instance value