org.apache.chemistry.opencmis.server.support.query
Class QueryObject

java.lang.Object
  extended by org.apache.chemistry.opencmis.server.support.query.QueryObject

public class QueryObject
extends java.lang.Object

QueryObject is a class used to encapsulate a CMIS query. It is created from an ANTLR parser on an incoming query string. During parsing various informations are collected and stored in objects suitable for evaluating the query (like selected properties, effected types and order statements. A query evaluator can use this information to perform the query and build the result.


Nested Class Summary
static class QueryObject.JoinSpec
           
 class QueryObject.SortSpec
           
 
Field Summary
protected  java.util.Map<java.lang.String,CmisSelector> colOrFuncAlias
           
protected  java.util.Map<java.lang.Integer,CmisSelector> columnReferences
           
protected  java.lang.String from
          main from alias name
protected  java.util.Map<java.lang.String,java.lang.String> froms
          map from alias name to type query name
protected  java.util.List<CmisSelector> joinReferences
           
protected  java.util.List<QueryObject.JoinSpec> joinSpecs
           
protected  java.util.List<CmisSelector> selectReferences
           
protected  java.util.List<QueryObject.SortSpec> sortSpecs
           
protected  TypeManager typeMgr
           
protected  java.util.Map<java.lang.Integer,java.lang.String> typeReferences
           
protected  java.util.List<CmisSelector> whereReferences
           
 
Constructor Summary
QueryObject()
           
QueryObject(TypeManager tm)
           
 
Method Summary
 void addAlias(java.lang.String aliasName, CmisSelector aliasRef)
           
 void addJoin(java.lang.String kind, java.lang.String alias, boolean hasSpec)
           
 void addJoinReference(org.antlr.runtime.tree.Tree node, CmisSelector reference)
           
 void addSelectReference(org.antlr.runtime.tree.Tree node, CmisSelector selRef)
           
 void addSortCriterium(org.antlr.runtime.tree.Tree node, ColumnReference colRef, boolean ascending)
           
 java.lang.String addType(java.lang.String aliasName, java.lang.String typeQueryName)
           
 void addWhereReference(org.antlr.runtime.tree.Tree node, CmisSelector reference)
           
 void addWhereTypeReference(org.antlr.runtime.tree.Tree node, java.lang.String qualifier)
           
 CmisSelector getColumnReference(java.lang.Integer token)
           
 java.util.Map<java.lang.Integer,CmisSelector> getColumnReferences()
           
 java.lang.String getErrorMessage()
           
 java.util.List<CmisSelector> getJoinReferences()
           
 java.util.List<QueryObject.JoinSpec> getJoins()
           
 TypeDefinition getMainFromName()
           
 java.lang.String getMainTypeAlias()
           
 java.util.List<QueryObject.SortSpec> getOrderBys()
           
 TypeDefinition getParentType(java.lang.String typeId)
           
 TypeDefinition getParentType(TypeDefinition td)
           
protected  java.lang.String getReferencedTypeQueryName(java.lang.String qualifier)
           
 java.util.Map<java.lang.String,java.lang.String> getRequestedFuncs()
          return a map of all functions that have been requested in the SELECT part of the statement.
 java.util.Map<java.lang.String,java.lang.String> getRequestedProperties()
          return a map of all columns that have been requested in the SELECT part of the statement.
 CmisSelector getSelectAlias(java.lang.String aliasName)
           
 java.util.List<CmisSelector> getSelectReferences()
           
 TypeDefinition getTypeDefinitionFromQueryName(java.lang.String queryName)
           
 java.lang.String getTypeQueryName(java.lang.String qualifier)
           
 java.lang.String getTypeReference(java.lang.Integer token)
           
 java.util.Map<java.lang.String,java.lang.String> getTypes()
           
 java.util.List<CmisSelector> getWhereReferences()
           
protected  void resolveTypeForAlias(ColumnReference colRef)
           
protected  void resolveTypeForColumnReference(ColumnReference colRef)
           
 boolean resolveTypes()
           
protected  void validateColumnReferenceAndResolveType(ColumnReference colRef)
           
protected  void validateColumnReferenceAndResolveType(TypeDefinition td, ColumnReference colRef)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

typeMgr

protected TypeManager typeMgr

selectReferences

protected final java.util.List<CmisSelector> selectReferences

whereReferences

protected final java.util.List<CmisSelector> whereReferences

joinReferences

protected final java.util.List<CmisSelector> joinReferences

colOrFuncAlias

protected final java.util.Map<java.lang.String,CmisSelector> colOrFuncAlias

froms

protected final java.util.Map<java.lang.String,java.lang.String> froms
map from alias name to type query name


from

protected java.lang.String from
main from alias name


joinSpecs

protected final java.util.List<QueryObject.JoinSpec> joinSpecs

columnReferences

protected final java.util.Map<java.lang.Integer,CmisSelector> columnReferences

typeReferences

protected final java.util.Map<java.lang.Integer,java.lang.String> typeReferences

sortSpecs

protected final java.util.List<QueryObject.SortSpec> sortSpecs
Constructor Detail

QueryObject

public QueryObject()

QueryObject

public QueryObject(TypeManager tm)
Method Detail

getColumnReferences

public java.util.Map<java.lang.Integer,CmisSelector> getColumnReferences()

getColumnReference

public CmisSelector getColumnReference(java.lang.Integer token)

getTypeReference

public java.lang.String getTypeReference(java.lang.Integer token)

getErrorMessage

public java.lang.String getErrorMessage()

getSelectReferences

public java.util.List<CmisSelector> getSelectReferences()

addSelectReference

public void addSelectReference(org.antlr.runtime.tree.Tree node,
                               CmisSelector selRef)

addAlias

public void addAlias(java.lang.String aliasName,
                     CmisSelector aliasRef)

getSelectAlias

public CmisSelector getSelectAlias(java.lang.String aliasName)

addType

public java.lang.String addType(java.lang.String aliasName,
                                java.lang.String typeQueryName)

getMainTypeAlias

public java.lang.String getMainTypeAlias()

getTypes

public java.util.Map<java.lang.String,java.lang.String> getTypes()

getTypeQueryName

public java.lang.String getTypeQueryName(java.lang.String qualifier)

getTypeDefinitionFromQueryName

public TypeDefinition getTypeDefinitionFromQueryName(java.lang.String queryName)

getParentType

public TypeDefinition getParentType(TypeDefinition td)

getParentType

public TypeDefinition getParentType(java.lang.String typeId)

getMainFromName

public TypeDefinition getMainFromName()

getRequestedProperties

public java.util.Map<java.lang.String,java.lang.String> getRequestedProperties()
return a map of all columns that have been requested in the SELECT part of the statement.

Returns:
a map with a String as a key and value. key is the query name of the property, value is the alias if an alias was given or the query name otherwise.

getRequestedFuncs

public java.util.Map<java.lang.String,java.lang.String> getRequestedFuncs()
return a map of all functions that have been requested in the SELECT part of the statement.

Returns:
a map with a String as a key and value. key is the function name of the property, value is the alias if an alias was given or the function name otherwise.

addJoinReference

public void addJoinReference(org.antlr.runtime.tree.Tree node,
                             CmisSelector reference)

getJoinReferences

public java.util.List<CmisSelector> getJoinReferences()

addJoin

public void addJoin(java.lang.String kind,
                    java.lang.String alias,
                    boolean hasSpec)

getJoins

public java.util.List<QueryObject.JoinSpec> getJoins()

addWhereReference

public void addWhereReference(org.antlr.runtime.tree.Tree node,
                              CmisSelector reference)

getWhereReferences

public java.util.List<CmisSelector> getWhereReferences()

addWhereTypeReference

public void addWhereTypeReference(org.antlr.runtime.tree.Tree node,
                                  java.lang.String qualifier)

getOrderBys

public java.util.List<QueryObject.SortSpec> getOrderBys()

addSortCriterium

public void addSortCriterium(org.antlr.runtime.tree.Tree node,
                             ColumnReference colRef,
                             boolean ascending)

resolveTypes

public boolean resolveTypes()

resolveTypeForAlias

protected void resolveTypeForAlias(ColumnReference colRef)

resolveTypeForColumnReference

protected void resolveTypeForColumnReference(ColumnReference colRef)

validateColumnReferenceAndResolveType

protected void validateColumnReferenceAndResolveType(ColumnReference colRef)

validateColumnReferenceAndResolveType

protected void validateColumnReferenceAndResolveType(TypeDefinition td,
                                                     ColumnReference colRef)

getReferencedTypeQueryName

protected java.lang.String getReferencedTypeQueryName(java.lang.String qualifier)


Copyright © 2009-2011 The Apache Software Foundation. All Rights Reserved.