org.teiid.query.resolver
Class ProcedureContainerResolver

java.lang.Object
  extended by org.teiid.query.resolver.ProcedureContainerResolver
All Implemented Interfaces:
CommandResolver
Direct Known Subclasses:
DeleteResolver, ExecResolver, InsertResolver, UpdateResolver

public abstract class ProcedureContainerResolver
extends java.lang.Object
implements CommandResolver


Constructor Summary
ProcedureContainerResolver()
           
 
Method Summary
static void addChanging(TempMetadataStore discoveredMetadata, GroupContext externalGroups, java.util.List<ElementSymbol> elements)
           
static GroupSymbol addScalarGroup(java.lang.String name, TempMetadataStore metadata, GroupContext externalGroups, java.util.List<? extends SingleElementSymbol> symbols)
           
static GroupSymbol addScalarGroup(java.lang.String name, TempMetadataStore metadata, GroupContext externalGroups, java.util.List<? extends SingleElementSymbol> symbols, boolean updatable)
           
static GroupSymbol addScalarGroup(java.lang.String name, TempMetadataStore metadata, GroupContext externalGroups, java.util.List<? extends SingleElementSymbol> symbols, boolean[] updatable)
           
 Command expandCommand(ProcedureContainer procCommand, QueryMetadataInterface metadata, AnalysisRecord analysis)
          Expand a command by finding and attaching all subcommands to the command.
static void findChildCommandMetadata(Command currentCommand, GroupSymbol container, int type, QueryMetadataInterface metadata)
          Set the appropriate "external" metadata for the given command
protected abstract  java.lang.String getPlan(QueryMetadataInterface metadata, GroupSymbol group)
          For a given resolver, this returns the unparsed command.
static UpdateValidator.UpdateInfo getUpdateInfo(GroupSymbol group, QueryMetadataInterface metadata)
           
static UpdateValidator.UpdateInfo getUpdateInfo(GroupSymbol group, QueryMetadataInterface metadata, int type)
           
 void resolveCommand(Command command, TempMetadataAdapter metadata, boolean resolveNullLiterals)
          Resolve the command using the metadata.
protected  void resolveGroup(TempMetadataAdapter metadata, ProcedureContainer procCommand)
           
abstract  void resolveProceduralCommand(Command command, TempMetadataAdapter metadata)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProcedureContainerResolver

public ProcedureContainerResolver()
Method Detail

resolveProceduralCommand

public abstract void resolveProceduralCommand(Command command,
                                              TempMetadataAdapter metadata)
                                       throws QueryMetadataException,
                                              QueryResolverException,
                                              TeiidComponentException
Throws:
QueryMetadataException
QueryResolverException
TeiidComponentException

expandCommand

public Command expandCommand(ProcedureContainer procCommand,
                             QueryMetadataInterface metadata,
                             AnalysisRecord analysis)
                      throws QueryMetadataException,
                             QueryResolverException,
                             TeiidComponentException
Expand a command by finding and attaching all subcommands to the command. If some initial resolution must be done for this to be accomplished, that is ok, but it should be kept to a minimum.

Parameters:
command - The command to expand
useMetadataCommands - True if resolver should use metadata commands to completely resolve
metadata - Metadata access
analysis - The analysis record that will be filled in if doing annotation.
Throws:
QueryMetadataException - If there is a metadata problem
QueryResolverException - If the query cannot be resolved
TeiidComponentException - If there is an internal error

getPlan

protected abstract java.lang.String getPlan(QueryMetadataInterface metadata,
                                            GroupSymbol group)
                                     throws TeiidComponentException,
                                            QueryMetadataException,
                                            QueryResolverException
For a given resolver, this returns the unparsed command.

Parameters:
metadata -
group -
Returns:
Throws:
TeiidComponentException
QueryMetadataException
QueryResolverException

addChanging

public static void addChanging(TempMetadataStore discoveredMetadata,
                               GroupContext externalGroups,
                               java.util.List<ElementSymbol> elements)

resolveCommand

public void resolveCommand(Command command,
                           TempMetadataAdapter metadata,
                           boolean resolveNullLiterals)
                    throws QueryMetadataException,
                           QueryResolverException,
                           TeiidComponentException
Description copied from interface: CommandResolver
Resolve the command using the metadata.

Specified by:
resolveCommand in interface CommandResolver
Parameters:
command - The command to resolve
metadata - Metadata
resolveNullLiterals - true if the resolver should consider replacing null literals with more appropriate types
Throws:
QueryMetadataException - If there is a metadata problem
QueryResolverException - If the query cannot be resolved
TeiidComponentException - If there is an internal error
See Also:
CommandResolver.resolveCommand(org.teiid.query.sql.lang.Command, org.teiid.query.metadata.TempMetadataAdapter, boolean)

getUpdateInfo

public static UpdateValidator.UpdateInfo getUpdateInfo(GroupSymbol group,
                                                       QueryMetadataInterface metadata,
                                                       int type)
                                                throws QueryMetadataException,
                                                       TeiidComponentException,
                                                       QueryResolverException
Throws:
QueryMetadataException
TeiidComponentException
QueryResolverException

getUpdateInfo

public static UpdateValidator.UpdateInfo getUpdateInfo(GroupSymbol group,
                                                       QueryMetadataInterface metadata)
                                                throws TeiidComponentException,
                                                       QueryMetadataException,
                                                       QueryResolverException
Throws:
TeiidComponentException
QueryMetadataException
QueryResolverException

resolveGroup

protected void resolveGroup(TempMetadataAdapter metadata,
                            ProcedureContainer procCommand)
                     throws TeiidComponentException,
                            QueryResolverException
Parameters:
metadata -
procCommand -
Throws:
TeiidComponentException
QueryResolverException

addScalarGroup

public static GroupSymbol addScalarGroup(java.lang.String name,
                                         TempMetadataStore metadata,
                                         GroupContext externalGroups,
                                         java.util.List<? extends SingleElementSymbol> symbols)

addScalarGroup

public static GroupSymbol addScalarGroup(java.lang.String name,
                                         TempMetadataStore metadata,
                                         GroupContext externalGroups,
                                         java.util.List<? extends SingleElementSymbol> symbols,
                                         boolean updatable)

addScalarGroup

public static GroupSymbol addScalarGroup(java.lang.String name,
                                         TempMetadataStore metadata,
                                         GroupContext externalGroups,
                                         java.util.List<? extends SingleElementSymbol> symbols,
                                         boolean[] updatable)

findChildCommandMetadata

public static void findChildCommandMetadata(Command currentCommand,
                                            GroupSymbol container,
                                            int type,
                                            QueryMetadataInterface metadata)
                                     throws QueryMetadataException,
                                            TeiidComponentException
Set the appropriate "external" metadata for the given command

Throws:
QueryMetadataException
TeiidComponentException


Copyright © 2011. All Rights Reserved.