com.metamatrix.connector.salesforce.execution.visitors
Class JoinQueryVisitor

java.lang.Object
  extended by org.teiid.connector.visitor.framework.AbstractLanguageVisitor
      extended by org.teiid.connector.visitor.framework.HierarchyVisitor
          extended by com.metamatrix.connector.salesforce.execution.visitors.CriteriaVisitor
              extended by com.metamatrix.connector.salesforce.execution.visitors.SelectVisitor
                  extended by 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


Field Summary
 
Fields inherited from class com.metamatrix.connector.salesforce.execution.visitors.SelectVisitor
limitClause, selectSymbols
 
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
 
Constructor Summary
JoinQueryVisitor(RuntimeMetadata metadata)
           
 
Method Summary
protected  void addSelectSymbols(java.lang.String tableNameInSource, java.lang.StringBuffer result)
           
 java.lang.String getQuery()
           
 boolean isParentToChildJoin()
           
 void visit(ICompareCriteria criteria)
           
 void visit(IJoin join)
           
 
Methods inherited from class com.metamatrix.connector.salesforce.execution.visitors.SelectVisitor
getIdIndex, getQueryAll, getSelectSymbolCount, getSelectSymbolMetadata, getSelectSymbolMetadata, visit, visit, visit
 
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 org.teiid.connector.visitor.framework.AbstractLanguageVisitor
visit, visit, visit, visit, visit, visit, visitNode, visitNodes, visitNodes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.metamatrix.connector.salesforce.execution.visitors.ICriteriaVisitor
getTableName, hasCriteria, hasOnlyIDCriteria, setHasCriteria
 

Constructor Detail

JoinQueryVisitor

public JoinQueryVisitor(RuntimeMetadata metadata)
Method Detail

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.