EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql
Class Resolver

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.Resolver
Direct Known Subclasses:
AbsFunctionResolver, AbstractPathResolver, ClassNameResolver, ClassResolver, CollectionEquivalentResolver, DeclarationResolver, EntityResolver, EnumLiteralResolver, FromSubqueryResolver, IdentificationVariableResolver, KeyResolver, NullResolver, NumericResolver, SubqueryEntityResolver, SumFunctionResolver, TreatResolver, ValueResolver

public abstract class Resolver
extends java.lang.Object

A Resolver is responsible to resolve a property by retrieving either the managed type, the mapping, the type and the type declaration depending on the type of resolver.

Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

Version:
2.4
Author:
Pascal Filion
Since:
2.3

Constructor Summary
protected Resolver(Resolver parent)
          Creates a new Resolver.
 
Method Summary
abstract  void accept(ResolverVisitor visitor)
          Visits this Resolver by the given visitor.
protected  void addChild(java.lang.String variableName, Resolver resolver)
          Caches the given Resolver.
protected  IType buildType()
          Resolves the IType of the property handled by this Resolver.
protected abstract  ITypeDeclaration buildTypeDeclaration()
          Resolves the ITypeDeclaration of the property handled by this Resolver.
protected  void checkParent(Resolver parent)
           
protected  Resolver getChild(java.lang.String variableName)
          Retrieves the child of this Resolver that has the given variable name.
 IManagedType getManagedType()
          Returns the IManagedType associated with the field handled by this Resolver.
 IMapping getMapping()
          Returns the IMapping for the wrapped field.
 Resolver getParent()
          Returns the parent of this Resolver.
protected  IManagedType getParentManagedType()
          Returns the managed type of the parent resolver.
protected  IMapping getParentMapping()
          Returns the IMapping of the parent resolver.
protected  IType getParentType()
          Returns the type of the parent resolver.
protected  ITypeDeclaration getParentTypeDeclaration()
          Returns the type declaration of the parent resolver.
protected  IManagedTypeProvider getProvider()
          Returns the provider of managed types.
protected  IQuery getQuery()
          Returns the external form representing the JPQL query.
 IType getType()
          Returns the IType of the field handled by this Resolver.
protected  IType getType(java.lang.Class<?> type)
          Returns the IType of the given Java type.
protected  IType getType(java.lang.String typeName)
          Retrieves the external class for the given fully qualified class name.
protected  ITypeDeclaration getTypeDeclaration()
          Returns the ITypeDeclaration of the field handled by this Resolver.
protected  TypeHelper getTypeHelper()
          Returns a helper that gives access to the most common types.
protected  ITypeRepository getTypeRepository()
          Returns the type repository for the application.
 boolean isNullAllowed()
          Determines whether the Expression to be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to be null if there is no corresponding relationship in the database.
 void setNullAllowed(boolean nullAllowed)
          Sets whether the Expression to be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to be null if there is no corresponding relationship in the database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Resolver

protected Resolver(Resolver parent)
Creates a new Resolver.

Parameters:
parent - The parent of this resolver, which is never null
Throws:
java.lang.NullPointerException - If the parent is null
Method Detail

accept

public abstract void accept(ResolverVisitor visitor)
Visits this Resolver by the given visitor.

Parameters:
visitor - The visitor to visit this object

addChild

protected final void addChild(java.lang.String variableName,
                              Resolver resolver)
Caches the given Resolver.

Parameters:
variableName - The key used to cache the given Resolver
resolver - The Resolver to cache

buildType

protected IType buildType()
Resolves the IType of the property handled by this Resolver.

Returns:
Either the IType that was resolved by this Resolver or the IType for IType.UNRESOLVABLE_TYPE if it could not be resolved

buildTypeDeclaration

protected abstract ITypeDeclaration buildTypeDeclaration()
Resolves the ITypeDeclaration of the property handled by this Resolver.

Returns:
Either the ITypeDeclaration that was resolved by this Resolver or the ITypeDeclaration for IType.UNRESOLVABLE_TYPE if it could not be resolved

checkParent

protected void checkParent(Resolver parent)

getChild

protected final Resolver getChild(java.lang.String variableName)
Retrieves the child of this Resolver that has the given variable name.

Parameters:
variableName - The name of the property that was cached
Returns:
The cached Resolver mapped with the given property name; otherwise null

getManagedType

public IManagedType getManagedType()
Returns the IManagedType associated with the field handled by this Resolver. If this Resolver does not handle a field that has a IManagedType, then null should be returned.

For example: "SELECT e FROM Employee e", the Resolver for e would be returning the IManagedType for Employee.

Returns:
Either the IManagedType, if it could be resolved; null otherwise

getMapping

public IMapping getMapping()
Returns the IMapping for the wrapped field.

Returns:
Either the IMapping or null if none exists

getParent

public Resolver getParent()
Returns the parent of this Resolver.

Returns:
The parent of this Resolver

getParentManagedType

protected final IManagedType getParentManagedType()
Returns the managed type of the parent resolver.

Returns:
The managed type of the parent resolver

getParentMapping

protected final IMapping getParentMapping()
Returns the IMapping of the parent resolver.

Returns:
The IMapping of the parent resolver

getParentType

protected final IType getParentType()
Returns the type of the parent resolver.

Returns:
The type of the parent resolver

getParentTypeDeclaration

protected final ITypeDeclaration getParentTypeDeclaration()
Returns the type declaration of the parent resolver.

Returns:
The type declaration of the parent resolver

getProvider

protected final IManagedTypeProvider getProvider()
Returns the provider of managed types.

Returns:
The container holding the managed types

getQuery

protected IQuery getQuery()
Returns the external form representing the JPQL query.

Returns:
The external form of the JPQL query

getType

public final IType getType()
Returns the IType of the field handled by this Resolver.

Returns:
Either the IType that was resolved by this Resolver or the IType for IType.UNRESOLVABLE_TYPE if it could not be resolved

getType

protected final IType getType(java.lang.Class<?> type)
Returns the IType of the given Java type.

Parameters:
type - The Java type for which its external form will be returned
Returns:
The IType representing the given Java type

getType

protected final IType getType(java.lang.String typeName)
Retrieves the external class for the given fully qualified class name.

Parameters:
typeName - The fully qualified class name of the class to retrieve
Returns:
The external form of the class to retrieve

getTypeDeclaration

protected final ITypeDeclaration getTypeDeclaration()
Returns the ITypeDeclaration of the field handled by this Resolver.

Returns:
Either the ITypeDeclaration that was resolved by this Resolver or the ITypeDeclaration for IType.UNRESOLVABLE_TYPE if it could not be resolved

getTypeHelper

protected final TypeHelper getTypeHelper()
Returns a helper that gives access to the most common types.

Returns:
A helper containing a collection of methods related to IType

getTypeRepository

protected final ITypeRepository getTypeRepository()
Returns the type repository for the application.

Returns:
The repository of ITypes

isNullAllowed

public boolean isNullAllowed()
Determines whether the Expression to be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to be null if there is no corresponding relationship in the database.

Returns:
true to allow null if the corresponding relationship in the database does not exists; false otherwise

setNullAllowed

public void setNullAllowed(boolean nullAllowed)
Sets whether the Expression to be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to be null if there is no corresponding relationship in the database.

Parameters:
nullAllowed - true to allow null if the corresponding relationship in the database does not exists; false otherwise

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference