public boolean evaluateFunctionLogical(final FunctionNode functionNode) { if (functionNode.size() > 0 && functionNode.getNode(0) instanceof SymbolNode) { String symbol = functionNode.getNode(0).toString(); if (functionNode.size() == 2) { Object obj = FUNCTION_BOOLEAN_MAP.get(symbol); if (obj instanceof IBooleanBoolean1Function) { return ((IBooleanBoolean1Function) obj).evaluate(evaluateNodeLogical(functionNode.getNode(1))); } } else if (functionNode.size() == 3) { Object obj = FUNCTION_BOOLEAN_MAP.get(symbol); if (obj instanceof IBooleanComplex2Function) { return ((IBooleanComplex2Function) obj).evaluate(evaluateNode(functionNode.getNode(1)), evaluateNode(functionNode.getNode(2))); } else if (obj instanceof IBooleanBoolean2Function) { return ((IBooleanBoolean2Function) obj).evaluate(evaluateNodeLogical(functionNode.getNode(1)), evaluateNodeLogical(functionNode.getNode(2))); } // } else { // Object obj = FUNCTION_BOOLEAN_MAP.get(symbol); // if (obj instanceof IBooleanDoubleFunction) { // return ((IBooleanDoubleFunction) obj).evaluate(this, functionNode); // } } } throw new ArithmeticException("EvalDouble#evaluateFunctionLogical(FunctionNode) not possible for: " + functionNode.toString()); }
Object obj = FUNCTION_BOOLEAN_MAP.get( symbol ); if ( obj instanceof IBooleanBoolean1Function ) { return ((IBooleanBoolean1Function) obj).evaluate( evaluateNodeLogical( functionNode.getNode( 1 ) ) ); return ((IBooleanBoolean2Function) obj).evaluate( evaluateNodeLogical( functionNode.getNode( 1 ) ), evaluateNodeLogical( functionNode.getNode( 2 ) ) );
if (symbol.equals("If")) { if (functionNode.size() == 3) { if (evaluateNodeLogical(functionNode.getNode(1))) { return evaluateNode(functionNode.getNode(2)); if (evaluateNodeLogical(functionNode.getNode(1))) { return evaluateNode(functionNode.getNode(2)); } else {
if ( symbol.equals( "If" ) ) { if ( functionNode.size() == 3 ) { if ( evaluateNodeLogical( functionNode.getNode( 1 ) ) ) { return evaluateNode( functionNode.getNode( 2 ) ); if ( evaluateNodeLogical( functionNode.getNode( 1 ) ) ) { return evaluateNode( functionNode.getNode( 2 ) );