/**
  * 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;
            }
Exemple #10
0
 public static void setPredicateLeafColumn(PredicateLeaf leaf, string newName)
 {
     SearchArgumentImpl.PredicateLeafImpl.setColumnName(leaf, newName);
 }
 public static void setColumnName(PredicateLeaf leaf, string newName)
 {
     Debug.Assert(leaf is PredicateLeafImpl);
     ((PredicateLeafImpl)leaf).columnName = newName;
 }
 public static void setPredicateLeafColumn(PredicateLeaf leaf, string newName)
 {
     SearchArgumentImpl.PredicateLeafImpl.setColumnName(leaf, newName);
 }