Class InstancesHelper
- java.lang.Object
-
- weka.core.expressionlanguage.weka.InstancesHelper
-
- All Implemented Interfaces:
java.io.Serializable,Macro,MacroDeclarations,VariableDeclarations
public class InstancesHelper extends java.lang.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 (seesetInstance(Instance)andsetInstance(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 anInstancesHelperfor the given dataset.InstancesHelper(Instances dataset, boolean retainData)Constructs anInstancesHelperfor the given dataset.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Nodeevaluate(Node... params)Evaluates the 'ismissing' macroMacrogetMacro(java.lang.String name)Tries to fetch a macroNodegetVariable(java.lang.String name)Tries to fetch a variable of an instance valuebooleanhasMacro(java.lang.String name)Whether the given macro is declaredbooleanhasVariable(java.lang.String name)Returns whether the variable is declaredbooleanmissingAccessed()Whether a missing value has been evaluated during computation.voidsetInstance(int i)Sets the instance at index i of the supplied dataset to be the current instancevoidsetInstance(Instance instance)Sets the current instance to be the supplied instance
-
-
-
Constructor Detail
-
InstancesHelper
public InstancesHelper(Instances dataset)
Constructs anInstancesHelperfor 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 anInstancesHelperfor the given dataset.- Parameters:
dataset- the datasetretainData- true if the full dataset (rather than just the attribute information) is to be retained
-
-
Method Detail
-
hasMacro
public boolean hasMacro(java.lang.String name)
Whether the given macro is declared- Specified by:
hasMacroin interfaceMacroDeclarations- Parameters:
name- name of the macro- Returns:
- whether the given macro is declared
-
getMacro
public Macro getMacro(java.lang.String name)
Tries to fetch a macro The same invariant ofMacroDeclarationsapplies here too.- Specified by:
getMacroin interfaceMacroDeclarations- Parameters:
name- of the macro- Returns:
- the macro
-
evaluate
public Node evaluate(Node... params) throws SemanticException
Evaluates the 'ismissing' macro- Specified by:
evaluatein interfaceMacro- 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:
java.lang.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 thesetInstance(int)orsetInstance(Instance)method is called.- Returns:
- whether a missing value has been evaluated during computation
-
hasVariable
public boolean hasVariable(java.lang.String name)
Returns whether the variable is declared- Specified by:
hasVariablein interfaceVariableDeclarations- Parameters:
name- name of the variable- Returns:
- whether it has been declared
-
getVariable
public Node getVariable(java.lang.String name)
Tries to fetch a variable of an instance value The same invariant ofVariableDeclarationsapplies here too.- Specified by:
getVariablein interfaceVariableDeclarations- Parameters:
name- name of the variable- Returns:
- node representing the instance value
-
-