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:
  • 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