All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jfirer.jfireel.expression.node.impl.QuestionNodeImpl Maven / Gradle / Ivy

package com.jfirer.jfireel.expression.node.impl;

import java.util.Map;
import com.jfirer.jfireel.expression.node.CalculateNode;
import com.jfirer.jfireel.expression.node.QuestionNode;
import com.jfirer.jfireel.expression.token.Token;
import com.jfirer.jfireel.expression.token.TokenType;

public class QuestionNodeImpl implements QuestionNode
{
    private CalculateNode conditionNode;
    private CalculateNode expressionNode1;
    private CalculateNode expressionNode2;
    
    @Override
    public Object calculate(Map variables)
    {
        Object condition = conditionNode.calculate(variables);
        if (condition == null)
        {
            return null;
        }
        if ((Boolean) condition)
        {
            return expressionNode1.calculate(variables);
        }
        else
        {
            return expressionNode2.calculate(variables);
        }
    }
    
    @Override
    public TokenType type()
    {
        return Token.QUESTION;
    }
    
    @Override
    public void setConditionNode(CalculateNode node)
    {
        conditionNode = node;
    }
    
    @Override
    public void setLeftNode(CalculateNode node)
    {
        expressionNode1 = node;
    }
    
    @Override
    public void setRightNode(CalculateNode node)
    {
        expressionNode2 = node;
    }
    
    @Override
    public String literals()
    {
        return conditionNode.literals() + "?" + expressionNode1.literals() + ":" + expressionNode2.literals();
    }
    
    @Override
    public String toString()
    {
        return literals();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy