com.metamatrix.connector.salesforce.execution.visitors
Class JoinQueryVisitor
java.lang.Object
org.teiid.connector.visitor.framework.AbstractLanguageVisitor
org.teiid.connector.visitor.framework.HierarchyVisitor
com.metamatrix.connector.salesforce.execution.visitors.CriteriaVisitor
com.metamatrix.connector.salesforce.execution.visitors.SelectVisitor
com.metamatrix.connector.salesforce.execution.visitors.JoinQueryVisitor
- All Implemented Interfaces:
- ICriteriaVisitor, IQueryProvidingVisitor, LanguageObjectVisitor
public class JoinQueryVisitor
- extends SelectVisitor
- implements IQueryProvidingVisitor
Salesforce supports joins only on primary key/foreign key relationships. The connector
is supporting these joins through the OUTER JOIN syntax. All RIGHT OUTER JOINS are
rewritten by the query processor as LEFT OUTER JOINS, so that is all this visitor has
to expect.
Salesforce also requires a different syntax depending upon if you are joining from parent
to child, or from child to parent.
http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic=Content/sforce_api_calls_soql_relationships.htm
Fields inherited from class com.metamatrix.connector.salesforce.execution.visitors.CriteriaVisitor |
APOS, CLOSE, columnElementsByName, COMMA, criteriaList, exceptions, EXCLUDES, FROM, hasCriteria, INCLUDES, LIMIT, metadata, OPEN, ORDER_BY, queryAll, SELECT, SEMI, SPACE, table, WHERE |
Methods inherited from class com.metamatrix.connector.salesforce.execution.visitors.CriteriaVisitor |
addCompareCriteria, addCriteriaString, getTableName, hasCriteria, hasOnlyIDCriteria, isIdColumn, isMultiSelectColumn, loadColumnMetadata, parseFunction, setHasCriteria, visit, visit, visit, visit |
Methods inherited from class org.teiid.connector.visitor.framework.HierarchyVisitor |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JoinQueryVisitor
public JoinQueryVisitor(RuntimeMetadata metadata)
visit
public void visit(IJoin join)
- Specified by:
visit
in interface LanguageObjectVisitor
- Overrides:
visit
in class HierarchyVisitor
visit
public void visit(ICompareCriteria criteria)
- Specified by:
visit
in interface LanguageObjectVisitor
- Overrides:
visit
in class CriteriaVisitor
getQuery
public java.lang.String getQuery()
throws ConnectorException
- Specified by:
getQuery
in interface IQueryProvidingVisitor
- Overrides:
getQuery
in class SelectVisitor
- Throws:
ConnectorException
isParentToChildJoin
public boolean isParentToChildJoin()
addSelectSymbols
protected void addSelectSymbols(java.lang.String tableNameInSource,
java.lang.StringBuffer result)
throws ConnectorException
- Overrides:
addSelectSymbols
in class SelectVisitor
- Throws:
ConnectorException
Copyright © 2009. All Rights Reserved.