Class IfElseMacro
- java.lang.Object
-
- weka.core.expressionlanguage.common.IfElseMacro
-
- All Implemented Interfaces:
Macro,MacroDeclarations
public class IfElseMacro extends java.lang.Object implements MacroDeclarations, Macro
A macro declaration exposing theifelsefunction. The ifelse macro can be used as follows:ifelse(condition, ifpart, elsepart)Whith the following constraints:- condition must be of boolean type
- ifpart and elsepart must be of the same type
- ifpart must be either of boolean, double or string type
ifelse(A < B, true, A = B)ifelse(A = B, 4.0^2, 1/5)ifelse(A > B, 'bigger', 'smaller')
- Version:
- $Revision: 1000 $
- Author:
- Benjamin Weber ( benweber at student dot ethz dot ch )
-
-
Constructor Summary
Constructors Constructor Description IfElseMacro()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Nodeevaluate(Node... params)Evaluates the ifelse macroMacrogetMacro(java.lang.String name)Tries to fetch the macrobooleanhasMacro(java.lang.String name)Whether the macro is declared
-
-
-
Method Detail
-
hasMacro
public boolean hasMacro(java.lang.String name)
Whether the macro is declared- Specified by:
hasMacroin interfaceMacroDeclarations- Parameters:
name- name of the macro- Returns:
- whether the macro is declared
-
getMacro
public Macro getMacro(java.lang.String name)
Tries to fetch the macro The same invariant ofMacroDeclarationsapplies here too.- Specified by:
getMacroin interfaceMacroDeclarations- Parameters:
name- name of the macro- Returns:
- a macro
-
evaluate
public Node evaluate(Node... params) throws SemanticException
Evaluates the ifelse macro- Specified by:
evaluatein interfaceMacro- Parameters:
params- the parameters- Returns:
- an AST (abstract syntax tree) node evaluating the ifelse function
- Throws:
SemanticException
-
-