/** * Create a predicate leaf. This is used by another test. */ public static PredicateLeaf createPredicateLeaf(PredicateLeaf.Operator @operator, PredicateLeaf.Type type, string columnName, object literal, List<object> literalList) { return new SearchArgumentImpl.PredicateLeafImpl(@operator, type, columnName, literal, literalList); }
private int addLeaf(PredicateLeaf leaf) { int result; if (!leaves.TryGetValue(leaf, out result)) { int id = leaves.Count; leaves[leaf] = id; return(id); } else { return(result); } }
public static void setColumnName(PredicateLeaf leaf, string newName) { Debug.Assert(leaf is PredicateLeafImpl); ((PredicateLeafImpl)leaf).columnName = newName; }
public PredicateLeafImpl( PredicateLeaf.Operator @operator, Type type, string columnName, object literal, List<object> literalList) { this.@operator = @operator; this.type = type; this.columnName = columnName; this.literal = literal; if (literal != null) { if (literal.GetType() != type.getValueClass()) { throw new ArgumentException("Wrong value class " + literal.GetType().Name + " for " + type + "." + @operator + " leaf"); } } this.literalList = literalList; if (literalList != null) { System.Type valueCls = type.getValueClass(); foreach (object lit in literalList) { if (lit != null && lit.GetType() != valueCls) { throw new ArgumentException("Wrong value class item " + lit.GetType().Name + " for " + type + "." + @operator + " leaf"); } } } }
private int addLeaf(PredicateLeaf leaf) { int result; if (!leaves.TryGetValue(leaf, out result)) { int id = leaves.Count; leaves[leaf] = id; return id; } else { return result; } }
public SearchArgument.Builder nullSafeEquals(string column, PredicateLeaf.Type type, object literal) { ExpressionTree parent = currentTree.Peek(); if (column == null || literal == null) { parent.getChildren().Add(new ExpressionTree(TruthValue.YES_NO_NULL)); } else { PredicateLeaf leaf = new PredicateLeafImpl(PredicateLeaf.Operator.NULL_SAFE_EQUALS, type, column, literal, null); parent.getChildren().Add(new ExpressionTree(addLeaf(leaf))); } return this; }
public SearchArgument.Builder isNull(string column, PredicateLeaf.Type type) { ExpressionTree parent = currentTree.Peek(); if (column == null) { parent.getChildren().Add(new ExpressionTree(TruthValue.YES_NO_NULL)); } else { PredicateLeaf leaf = new PredicateLeafImpl(PredicateLeaf.Operator.IS_NULL, type, column, null, null); parent.getChildren().Add(new ExpressionTree(addLeaf(leaf))); } return this; }
public SearchArgument.Builder between(string column, PredicateLeaf.Type type, object lower, object upper) { ExpressionTree parent = currentTree.Peek(); if (column == null || lower == null || upper == null) { parent.getChildren().Add(new ExpressionTree(TruthValue.YES_NO_NULL)); } else { List<object> argList = new List<object>(); argList.Add(lower); argList.Add(upper); PredicateLeaf leaf = new PredicateLeafImpl(PredicateLeaf.Operator.BETWEEN, type, column, null, argList); parent.getChildren().Add(new ExpressionTree(addLeaf(leaf))); } return this; }
public SearchArgument.Builder @in(string column, PredicateLeaf.Type type, params object[] literal) { ExpressionTree parent = currentTree.Peek(); if (column == null || literal == null) { parent.getChildren().Add(new ExpressionTree(TruthValue.YES_NO_NULL)); } else { if (literal.Length == 0) { throw new ArgumentException("Can't create in expression with " + "no arguments"); } List<object> argList = new List<object>(); argList.AddRange(literal.ToList()); PredicateLeaf leaf = new PredicateLeafImpl(PredicateLeaf.Operator.IN, type, column, null, argList); parent.getChildren().Add(new ExpressionTree(addLeaf(leaf))); } return this; }
public static void setPredicateLeafColumn(PredicateLeaf leaf, string newName) { SearchArgumentImpl.PredicateLeafImpl.setColumnName(leaf, newName); }