blob: 4f5649e785fe99926cefdd6e510c4d9088db87a2 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.chemistry.opencmis.query.example;
import java.util.List;
import org.antlr.runtime.tree.Tree;
import org.apache.chemistry.opencmis.server.support.query.AbstractPredicateWalker;
/**
* An extended walker approach with more fine grained control and more callback
* hooks. This class is independent of the target output.
*
*/
public abstract class ExtendedAbstractPredicateWalker extends AbstractPredicateWalker {
protected abstract void onStartProcessing(Tree whereNode);
protected abstract void onStopProcessing();
// Compare operators
protected void onPreEquals(Tree eqNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onEquals(Tree eqNode, Tree leftNode, Tree rightNode);
protected void onPostEquals(Tree eqNode, Tree leftNode, Tree rightNode) {
}
protected void onPreNotEquals(Tree neNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onNotEquals(Tree neNode, Tree leftNode, Tree rightNode);
protected void onPostNotEquals(Tree neNode, Tree leftNode, Tree rightNode) {
}
protected void onPreGreaterThan(Tree gtNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onGreaterThan(Tree gtNode, Tree leftNode, Tree rightNode);
protected void onPostGreaterThan(Tree gtNode, Tree leftNode, Tree rightNode) {
}
protected void onPreGreaterOrEquals(Tree geNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onGreaterOrEquals(Tree geNode, Tree leftNode, Tree rightNode);
protected void onPostGreaterOrEquals(Tree geNode, Tree leftNode, Tree rightNode) {
}
protected void onPreLessThan(Tree ltNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onLessThan(Tree ltNode, Tree leftNode, Tree rightNode);
protected void onPostLessThan(Tree ltNode, Tree leftNode, Tree rightNode) {
}
protected void onPreLessOrEquals(Tree leqNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onLessOrEquals(Tree leqNode, Tree leftNode, Tree rightNode);
protected void onPostLessOrEquals(Tree leqNode, Tree leftNode, Tree rightNode) {
}
// Boolean operators
protected abstract void onNot(Tree opNode, Tree leftNode);
protected void onPostNot(Tree opNode, Tree leftNode) {
}
protected void onPreAnd(Tree opNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onAnd(Tree opNode, Tree leftNode, Tree rightNode);
protected void onPostAnd(Tree opNode, Tree leftNode, Tree rightNode) {
}
protected void onPreOr(Tree opNode, Tree leftNode, Tree rightNode) {
}
protected abstract void onOr(Tree opNode, Tree leftNode, Tree rightNode);
protected void onPostOr(Tree opNode, Tree leftNode, Tree rightNode) {
}
// Multi-value:
protected void onPreIn(Tree node, Tree colNode, Tree listNode) {
}
protected abstract void onIn(Tree node, Tree colNode, Tree listNode);
protected void onPostIn(Tree node, Tree colNode, Tree listNode) {
}
protected void onPreNotIn(Tree node, Tree colNode, Tree listNode) {
}
protected abstract void onNotIn(Tree node, Tree colNode, Tree listNode);
protected void onPostNotIn(Tree node, Tree colNode, Tree listNode) {
}
protected void onPreInAny(Tree node, Tree colNode, Tree listNode) {
}
protected abstract void onInAny(Tree node, Tree colNode, Tree listNode);
protected void onPostInAny(Tree node, Tree colNode, Tree listNode) {
}
protected void onPreNotInAny(Tree node, Tree colNode, Tree listNode) {
}
protected abstract void onNotInAny(Tree node, Tree literalNode, Tree colNode);
protected void onPostNotInAny(Tree node, Tree colNode, Tree listNode) {
}
protected void onPreEqAny(Tree node, Tree literalNode, Tree colNode) {
}
protected abstract void onEqAny(Tree node, Tree literalNode, Tree colNode);
protected void onPostEqAny(Tree node, Tree literalNode, Tree colNode) {
}
// Null comparisons:
protected abstract void onIsNull(Tree nullNode, Tree colNode);
protected void onPostIsNull(Tree nullNode, Tree colNode) {
}
protected abstract void onIsNotNull(Tree notNullNode, Tree colNode);
protected void onPostIsNotNull(Tree notNullNode, Tree colNode) {
}
// String matching:
protected void onPreIsLike(Tree node, Tree colNode, Tree stringNode) {
}
protected abstract void onIsLike(Tree node, Tree colNode, Tree stringNode);
protected void onPostIsLike(Tree node, Tree colNode, Tree stringNode) {
}
protected void onPreIsNotLike(Tree node, Tree colNode, Tree stringNode) {
}
protected abstract void onIsNotLike(Tree node, Tree colNode, Tree stringNode);
protected void onPostIsNotLike(Tree node, Tree colNode, Tree stringNode) {
}
protected abstract void onInFolder(Tree node, Tree colNode, Tree paramNode);
protected void onBetweenInFolder(Tree node, Tree colNode, Tree paramNode) {
}
protected void onPostInFolder(Tree node, Tree colNode, Tree paramNode) {
}
protected abstract void onInTree(Tree node, Tree colNode, Tree paramNode);
protected void onBetweenInTree(Tree node, Tree colNode, Tree paramNode) {
}
protected void onPostInTree(Tree node, Tree colNode, Tree paramNode) {
}
protected abstract void onScore(Tree node);
protected abstract void onColNode(Tree node);
protected void onPreTextAnd(Tree node, List<Tree> conjunctionNodes) {
}
protected abstract void onTextAnd(Tree node, List<Tree> conjunctionNodes, int index);
protected void onPostTextAnd(Tree node, List<Tree> conjunctionNodes) {
}
protected void onPreTextOr(Tree node, List<Tree> termNodes) {
}
protected abstract void onTextOr(Tree node, List<Tree> termNodes, int index);
protected void onPostTextOr(Tree node, List<Tree> termNodes) {
}
protected abstract void onTextMinus(Tree node, Tree notNode);
protected void onPostTextMinus(Tree node, Tree notNode) {
}
protected abstract void onTextWord(String word);
protected abstract void onTextPhrase(String phrase);
protected void onPreContains(Tree node, Tree typeNode, Tree searchExprNode) {
}
protected abstract void onContains(Tree node, Tree typeNode, Tree searchExprNode);
protected void onBetweenContains(Tree node, Tree typeNode, Tree searchExprNode) {
}
}