package com.norteksoft.wf.engine.core.impl;
import org.apache.commons.lang.StringUtils;
import com.norteksoft.wf.base.enumeration.TextOperator;
import com.norteksoft.wf.engine.core.Computable;
/**
* 文本相等、不等、包含、不包含的运算器
*/
public class TextCalculator implements Computable {
public Boolean execute(String subExpression) {
String operator = StringUtils.substringBetween(subExpression, "(", "\'").trim();
String rightOperand = StringUtils.substringBetween(subExpression, "\'", "\'").trim();
String leftOperand = StringUtils.substringBefore(subExpression, "(").trim();
if(StringUtils.contains(operator, TextOperator.NET.getCode())){
return !leftOperand.equals(rightOperand);
}else if(StringUtils.contains(operator, TextOperator.ET.getCode())){
return leftOperand.equals(rightOperand);
}else if(StringUtils.contains(operator, TextOperator.NOT_CONTAINS.getCode())){
return !StringUtils.contains(leftOperand, rightOperand);
}else if(StringUtils.contains(operator, TextOperator.CONTAINS.getCode())){
return StringUtils.contains(leftOperand, rightOperand);
}
throw new RuntimeException(subExpression + " is invalid expression.");
}
}