This project has retired. For details please refer to its Attic page.
PredicateWalker xref

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   *
19   * Contributors:
20   *     Florent Guillaume, Nuxeo
21   */
22  package org.apache.chemistry.opencmis.server.support.query;
23  
24  import org.antlr.runtime.tree.Tree;
25  
26  /**
27   * Interface for a tree walker of a WHERE clause.
28   * <p>
29   * Can be used to build another datastructure, or for direct value evaluation
30   * (thus the boolean return values for clauses, and Object for values).
31   * <p>
32   * The method {@link walkClause} is the entry point.
33   */
34  public interface PredicateWalker extends PredicateWalkerBase {
35  
36      Boolean walkNot(Tree opNode, Tree leftNode);
37  
38      Boolean walkAnd(Tree opNode, Tree leftNode, Tree rightNode);
39  
40      Boolean walkOr(Tree opNode, Tree leftNode, Tree rightNode);
41  
42      Object walkExpr(Tree node);
43  
44      Boolean walkEquals(Tree eqNode, Tree leftNode, Tree rightNode);
45  
46      Boolean walkNotEquals(Tree neNode, Tree leftNode, Tree rightNode);
47  
48      Boolean walkGreaterThan(Tree gtNode, Tree leftNode, Tree rightNode);
49  
50      Boolean walkGreaterOrEquals(Tree geNode, Tree leftNode, Tree rightNode);
51  
52      Boolean walkLessThan(Tree ltNode, Tree leftNode, Tree rightNode);
53  
54      Boolean walkLessOrEquals(Tree leqNode, Tree leftNode, Tree rightNode);
55  
56      Boolean walkIn(Tree node, Tree colNode, Tree listNode);
57  
58      Boolean walkNotIn(Tree node, Tree colNode, Tree listNode);
59  
60      Boolean walkInAny(Tree node, Tree colNode, Tree listNode);
61  
62      Boolean walkNotInAny(Tree node, Tree colNode, Tree listNode);
63  
64      Boolean walkEqAny(Tree node, Tree literalNode, Tree colNode);
65  
66      Boolean walkIsNull(Tree nullNode, Tree colNode);
67  
68      Boolean walkIsNotNull(Tree notNullNode, Tree colNode);
69  
70      Boolean walkLike(Tree node, Tree colNode, Tree stringNode);
71  
72      Boolean walkNotLike(Tree node, Tree colNode, Tree stringNode);
73  
74      Boolean walkContains(Tree node, Tree qualNode, Tree paramNode);
75  
76      Boolean walkInFolder(Tree node, Tree qualNode, Tree paramNode);
77  
78      Boolean walkInTree(Tree node, Tree qualNode, Tree paramNode);
79  
80      Object walkList(Tree node);
81  
82      Object walkBoolean(Tree node);
83  
84      Object walkNumber(Tree node);
85  
86      Object walkString(Tree node);
87  
88      Object walkTimestamp(Tree node);
89  
90      Object walkCol(Tree node);
91  
92      Object walkId(Tree node);
93  
94  }