Package org.teiid.translator.mongodb
Class MongoDBSelectVisitor
- java.lang.Object
-
- org.teiid.language.visitor.AbstractLanguageVisitor
-
- org.teiid.language.visitor.HierarchyVisitor
-
- org.teiid.translator.mongodb.MongoDBSelectVisitor
-
- All Implemented Interfaces:
LanguageObjectVisitor
- Direct Known Subclasses:
MongoDBUpdateVisitor
public class MongoDBSelectVisitor extends HierarchyVisitor
-
-
Field Summary
Fields Modifier and Type Field Description protected ArrayList<TranslatorException>exceptionsprotected MongoDBExecutionFactoryexecutionFactoryprotected ConcurrentHashMap<Object,org.teiid.translator.mongodb.ColumnDetail>expressionMapprotected com.mongodb.BasicDBObjectgroupprotected com.mongodb.DBObjecthavingprotected LinkedList<org.teiid.translator.mongodb.MongoDocument>joinedDocumentsprotected Integerlimitprotected com.mongodb.DBObjectmatchprotected MergePlannermergePlannerprotected RuntimeMetadatametadataprotected org.teiid.translator.mongodb.MongoDocumentmongoDocprotected Stack<Object>onGoingExpressionprotected ArrayList<Condition>pendingConditionsprotected com.mongodb.BasicDBObjectprojectprotected booleanprojectBeforeMatchprotected ArrayList<String>selectColumnReferencesprotected ArrayList<String>selectColumnsprotected Integerskipprotected com.mongodb.DBObjectsort
-
Constructor Summary
Constructors Constructor Description MongoDBSelectVisitor(MongoDBExecutionFactory executionFactory, RuntimeMetadata metadata)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappend(List<? extends LanguageObject> items)Simple utility to append a list of language objects to the current buffer by creating a comma-separated list.voidappend(LanguageObject obj)Appends the string form of the LanguageObject to the current buffer.protected voidappend(LanguageObject[] items)Simple utility to append an array of language objects to the current buffer by creating a comma-separated list.protected voidbuildComparisionQuery(Comparison obj, Object rightExpr, com.mongodb.QueryBuilder query)protected com.mongodb.BasicDBObjectbuildFunctionQuery(Comparison obj, com.mongodb.BasicDBObject leftExpr, Object rightExpr)protected com.mongodb.QueryBuilderbuildInQuery(In obj, com.mongodb.QueryBuilder query)protected com.mongodb.QueryBuilderbuildIsNullQuery(IsNull obj, com.mongodb.QueryBuilder query)protected com.mongodb.QueryBuilderbuildLikeQuery(Like obj, com.mongodb.QueryBuilder query)StringgetColumnName(ColumnReference obj)voidvisit(AggregateFunction obj)voidvisit(AndOr obj)voidvisit(Array array)voidvisit(ColumnReference obj)voidvisit(Comparison obj)voidvisit(DerivedColumn obj)voidvisit(Function obj)voidvisit(GroupBy obj)voidvisit(In obj)voidvisit(IsNull obj)voidvisit(Join obj)voidvisit(Like obj)voidvisit(Limit obj)voidvisit(Literal obj)voidvisit(NamedTable obj)voidvisit(OrderBy obj)voidvisit(Select obj)voidvisit(SortSpecification obj)-
Methods inherited from class org.teiid.language.visitor.HierarchyVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Methods inherited from class org.teiid.language.visitor.AbstractLanguageVisitor
visit, visit, visit, visitNode, visitNodes, visitNodes
-
-
-
-
Field Detail
-
executionFactory
protected MongoDBExecutionFactory executionFactory
-
metadata
protected RuntimeMetadata metadata
-
exceptions
protected ArrayList<TranslatorException> exceptions
-
expressionMap
protected ConcurrentHashMap<Object,org.teiid.translator.mongodb.ColumnDetail> expressionMap
-
mongoDoc
protected org.teiid.translator.mongodb.MongoDocument mongoDoc
-
project
protected com.mongodb.BasicDBObject project
-
limit
protected Integer limit
-
skip
protected Integer skip
-
sort
protected com.mongodb.DBObject sort
-
match
protected com.mongodb.DBObject match
-
having
protected com.mongodb.DBObject having
-
group
protected com.mongodb.BasicDBObject group
-
projectBeforeMatch
protected boolean projectBeforeMatch
-
mergePlanner
protected MergePlanner mergePlanner
-
joinedDocuments
protected LinkedList<org.teiid.translator.mongodb.MongoDocument> joinedDocuments
-
-
Constructor Detail
-
MongoDBSelectVisitor
public MongoDBSelectVisitor(MongoDBExecutionFactory executionFactory, RuntimeMetadata metadata)
-
-
Method Detail
-
append
public void append(LanguageObject obj)
Appends the string form of the LanguageObject to the current buffer.- Parameters:
obj- the language object instance
-
append
protected void append(List<? extends LanguageObject> items)
Simple utility to append a list of language objects to the current buffer by creating a comma-separated list.- Parameters:
items- a list of LanguageObjects
-
append
protected void append(LanguageObject[] items)
Simple utility to append an array of language objects to the current buffer by creating a comma-separated list.- Parameters:
items- an array of LanguageObjects
-
getColumnName
public String getColumnName(ColumnReference obj)
-
visit
public void visit(DerivedColumn obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(ColumnReference obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classAbstractLanguageVisitor
-
visit
public void visit(AggregateFunction obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(Function obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(NamedTable obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classAbstractLanguageVisitor
-
visit
public void visit(Join obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(Select obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(Comparison obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
buildFunctionQuery
protected com.mongodb.BasicDBObject buildFunctionQuery(Comparison obj, com.mongodb.BasicDBObject leftExpr, Object rightExpr)
-
buildComparisionQuery
protected void buildComparisionQuery(Comparison obj, Object rightExpr, com.mongodb.QueryBuilder query)
-
visit
public void visit(AndOr obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(Array array)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(Literal obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classAbstractLanguageVisitor
-
visit
public void visit(In obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
buildInQuery
protected com.mongodb.QueryBuilder buildInQuery(In obj, com.mongodb.QueryBuilder query)
-
visit
public void visit(IsNull obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
buildIsNullQuery
protected com.mongodb.QueryBuilder buildIsNullQuery(IsNull obj, com.mongodb.QueryBuilder query)
-
visit
public void visit(Like obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
buildLikeQuery
protected com.mongodb.QueryBuilder buildLikeQuery(Like obj, com.mongodb.QueryBuilder query)
-
visit
public void visit(Limit obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classAbstractLanguageVisitor
-
visit
public void visit(OrderBy obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(SortSpecification obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
visit
public void visit(GroupBy obj)
- Specified by:
visitin interfaceLanguageObjectVisitor- Overrides:
visitin classHierarchyVisitor
-
-