001: /*
002: * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006.
003: *
004: * Licensed under the Aduna BSD-style license.
005: */
006: package org.openrdf.query.algebra;
007:
008: /**
009: * An interface for query model visitors, implementing the Visitor pattern. Core
010: * query model nodes will call their type-specific method when
011: * {@link QueryModelNode#visit(QueryModelVisitor)} is called. The method
012: * {@link #meetOther(QueryModelNode)} is provided as a hook for foreign query
013: * model nodes.
014: */
015: public interface QueryModelVisitor<X extends Exception> {
016:
017: public void meet(QueryRoot node) throws X;
018:
019: public void meet(And node) throws X;
020:
021: public void meet(BNodeGenerator node) throws X;
022:
023: public void meet(Bound node) throws X;
024:
025: public void meet(Compare node) throws X;
026:
027: public void meet(CompareAll node) throws X;
028:
029: public void meet(CompareAny node) throws X;
030:
031: public void meet(Count node) throws X;
032:
033: public void meet(Datatype node) throws X;
034:
035: public void meet(Difference node) throws X;
036:
037: public void meet(Distinct node) throws X;
038:
039: public void meet(EmptySet node) throws X;
040:
041: public void meet(Exists node) throws X;
042:
043: public void meet(Extension node) throws X;
044:
045: public void meet(ExtensionElem node) throws X;
046:
047: public void meet(FunctionCall node) throws X;
048:
049: public void meet(Group node) throws X;
050:
051: public void meet(GroupElem node) throws X;
052:
053: public void meet(In node) throws X;
054:
055: public void meet(Intersection node) throws X;
056:
057: public void meet(IsBNode node) throws X;
058:
059: public void meet(IsLiteral node) throws X;
060:
061: public void meet(IsResource node) throws X;
062:
063: public void meet(IsURI node) throws X;
064:
065: public void meet(Join node) throws X;
066:
067: public void meet(Label node) throws X;
068:
069: public void meet(Lang node) throws X;
070:
071: public void meet(LangMatches node) throws X;
072:
073: public void meet(Like node) throws X;
074:
075: public void meet(LocalName node) throws X;
076:
077: public void meet(MathExpr node) throws X;
078:
079: public void meet(Max node) throws X;
080:
081: public void meet(Min node) throws X;
082:
083: public void meet(MultiProjection node) throws X;
084:
085: public void meet(Namespace node) throws X;
086:
087: public void meet(Not node) throws X;
088:
089: public void meet(LeftJoin node) throws X;
090:
091: public void meet(Or node) throws X;
092:
093: public void meet(Order node) throws X;
094:
095: public void meet(OrderElem node) throws X;
096:
097: public void meet(Projection node) throws X;
098:
099: public void meet(ProjectionElemList node) throws X;
100:
101: public void meet(ProjectionElem node) throws X;
102:
103: public void meet(Regex node) throws X;
104:
105: public void meet(Slice node) throws X;
106:
107: public void meet(SameTerm node) throws X;
108:
109: public void meet(Filter node) throws X;
110:
111: public void meet(SingletonSet node) throws X;
112:
113: public void meet(StatementPattern node) throws X;
114:
115: public void meet(Str node) throws X;
116:
117: public void meet(Union node) throws X;
118:
119: public void meet(ValueConstant node) throws X;
120:
121: public void meet(Var node) throws X;
122:
123: public void meetOther(QueryModelNode node) throws X;
124: }
|