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

org.unlaxer.tinyexpression.evaluator.javacode.BinaryConditionBuilder Maven / Gradle / Ivy

package org.unlaxer.tinyexpression.evaluator.javacode;

import org.unlaxer.Token;
import org.unlaxer.tinyexpression.parser.NumberEqualEqualExpressionParser;
import org.unlaxer.tinyexpression.parser.NumberGreaterExpressionParser;
import org.unlaxer.tinyexpression.parser.NumberGreaterOrEqualExpressionParser;
import org.unlaxer.tinyexpression.parser.NumberLessExpressionParser;
import org.unlaxer.tinyexpression.parser.NumberLessOrEqualExpressionParser;
import org.unlaxer.tinyexpression.parser.NumberNotEqualExpressionParser;

public class BinaryConditionBuilder implements TokenCodeBuilder{
	
	public static BinaryConditionBuilder SINGLETON = new BinaryConditionBuilder();


	@Override
	public void build(SimpleJavaCodeBuilder builder, Token token,
	    TinyExpressionTokens tinyExpressionTokens) {
		
		Token factor1 = token.filteredChildren.get(0);
		Token factor2 = token.filteredChildren.get(1);
		
		NumberExpressionBuilder.SINGLETON.build(builder, factor1 , tinyExpressionTokens);
		
		if(token.parser instanceof NumberEqualEqualExpressionParser) {
			
			builder.append("==");
			
		}else if(token.parser instanceof NumberNotEqualExpressionParser) {
			
			builder.append("!=");
			
		}else if(token.parser instanceof NumberGreaterOrEqualExpressionParser) {
			
			builder.append(">=");
			
		}else if(token.parser instanceof NumberLessOrEqualExpressionParser) {
			
			builder.append("<=");

		}else if(token.parser instanceof NumberGreaterExpressionParser) {
			
			builder.append(">");
			
		}else if(token.parser instanceof NumberLessExpressionParser) {
			
			builder.append("<");
		}else {
			throw new IllegalArgumentException();
		}
		NumberExpressionBuilder.SINGLETON.build(builder, factor2 , tinyExpressionTokens);

	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy