1 19 20 21 package org.apache.cayenne.exp.parser; 22 23 import org.apache.cayenne.exp.Expression; 24 import org.apache.cayenne.util.ConversionUtil; 25 26 31 public class ASTNotLike extends PatternMatchNode { 32 33 ASTNotLike(int id) { 34 super(id, false); 35 } 36 37 public ASTNotLike() { 38 super(ExpressionParserTreeConstants.JJTNOTLIKE, false); 39 } 40 41 public ASTNotLike(ASTPath path, Object value) { 42 super(ExpressionParserTreeConstants.JJTNOTLIKE, false); 43 jjtAddChild(path, 0); 44 jjtAddChild(new ASTScalar(value), 1); 45 } 46 47 protected Object evaluateNode(Object o) throws Exception { 48 int len = jjtGetNumChildren(); 49 if (len != 2) { 50 return Boolean.FALSE; 51 } 52 53 String s1 = ConversionUtil.toString(evaluateChild(0, o)); 54 if (s1 == null) { 55 return Boolean.FALSE; 56 } 57 58 return matchPattern(s1) ? Boolean.FALSE : Boolean.TRUE; 59 } 60 61 64 public Expression shallowCopy() { 65 return new ASTNotLike(id); 66 } 67 68 protected String getExpressionOperator(int index) { 69 return "not like"; 70 } 71 72 public int getType() { 73 return Expression.NOT_LIKE; 74 } 75 } 76 | Popular Tags |