Class Resolver
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.resolver.Resolver
- Direct Known Subclasses:
AbsFunctionResolver,AbstractPathResolver,ClassNameResolver,ClassResolver,CollectionEquivalentResolver,DeclarationResolver,EntityResolver,EnumLiteralResolver,FromSubqueryResolver,IdentificationVariableResolver,KeyResolver,MathFunctionResolver,NullResolver,NumericResolver,SubqueryEntityResolver,SumFunctionResolver,TreatResolver,ValueResolver
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.
- Since:
- 2.3
- Version:
- 2.5
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidCaches the givenResolver.protected ITypeprotected abstract ITypeDeclarationResolves theITypeDeclarationof the property handled by thisResolver.protected voidcheckParent(Resolver parent) final ResolverRetrieves the child of thisResolverthat has the given variable name.Returns theIManagedTypeassociated with the field handled by thisResolver.Returns theIMappingfor the wrapped field.Returns the parent of thisResolver.final IManagedTypeReturns the managed type of the parent resolver.final IMappingReturns theIMappingof the parent resolver.final ITypeReturns the type of the parent resolver.final ITypeDeclarationReturns the type declaration of the parent resolver.final IManagedTypeProviderReturns the provider of managed types.getQuery()Returns the external form representing the JPQL query.final ITypegetType()final ITypeReturns theITypeof the given Java type.final ITypeRetrieves the external class for the given fully qualified class name.final ITypeDeclarationReturns theITypeDeclarationof the field handled by thisResolver.final TypeHelperReturns a helper that gives access to the most commontypes.final ITypeRepositoryReturns the type repository for the application.booleanDetermines whether theExpressionto be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to benullif there is no corresponding relationship in the database.voidsetNullAllowed(boolean nullAllowed) Sets whether theExpressionto be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to benullif there is no corresponding relationship in the database.
-
Constructor Details
-
Resolver
Creates a newResolver.- Parameters:
parent- The parent of this resolver, which is nevernull- Throws:
NullPointerException- If the parent isnull
-
-
Method Details
-
addChild
Caches the givenResolver. -
buildType
- Returns:
- Either the
ITypethat was resolved by thisResolveror theITypeforIType.UNRESOLVABLE_TYPEif it could not be resolved
-
buildTypeDeclaration
Resolves theITypeDeclarationof the property handled by thisResolver.- Returns:
- Either the
ITypeDeclarationthat was resolved by thisResolveror theITypeDeclarationforIType.UNRESOLVABLE_TYPEif it could not be resolved
-
checkParent
-
getChild
Retrieves the child of thisResolverthat has the given variable name.- Parameters:
variableName- The name of the property that was cached- Returns:
- The cached
Resolvermapped with the given property name; otherwisenull
-
getManagedType
Returns theIManagedTypeassociated with the field handled by thisResolver. If thisResolverdoes not handle a field that has aIManagedType, thennullshould be returned.For example: "
SELECT e FROM Employee e", theResolverfor e would be returning theIManagedTypefor Employee.- Returns:
- Either the
IManagedType, if it could be resolved;nullotherwise
-
getMapping
Returns theIMappingfor the wrapped field.- Returns:
- Either the
IMappingornullif none exists
-
getParent
Returns the parent of thisResolver.- Returns:
- The parent of this
Resolver
-
getParentManagedType
Returns the managed type of the parent resolver.- Returns:
- The managed type of the parent resolver
-
getParentMapping
Returns theIMappingof the parent resolver.- Returns:
- The
IMappingof the parent resolver
-
getParentType
Returns the type of the parent resolver.- Returns:
- The type of the parent resolver
-
getParentTypeDeclaration
Returns the type declaration of the parent resolver.- Returns:
- The type declaration of the parent resolver
-
getProvider
Returns the provider of managed types.- Returns:
- The container holding the managed types
-
getQuery
Returns the external form representing the JPQL query.- Returns:
- The external form of the JPQL query
-
getType
- Returns:
- Either the
ITypethat was resolved by thisResolveror theITypeforIType.UNRESOLVABLE_TYPEif it could not be resolved
-
getType
Returns theITypeof the given Java type.- Parameters:
type- The Java type for which its external form will be returned- Returns:
- The
ITyperepresenting the given Java type
-
getType
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
Returns theITypeDeclarationof the field handled by thisResolver.- Returns:
- Either the
ITypeDeclarationthat was resolved by thisResolveror theITypeDeclarationforIType.UNRESOLVABLE_TYPEif it could not be resolved
-
getTypeHelper
Returns a helper that gives access to the most commontypes.- Returns:
- A helper containing a collection of methods related to
IType
-
getTypeRepository
Returns the type repository for the application.- Returns:
- The repository of
ITypes
-
isNullAllowed
public boolean isNullAllowed()Determines whether theExpressionto be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to benullif there is no corresponding relationship in the database.- Returns:
trueto allownullif the corresponding relationship in the database does not exists;falseotherwise
-
setNullAllowed
public void setNullAllowed(boolean nullAllowed) Sets whether theExpressionto be created, which wraps the attribute or query key name allows the target of the 1:1 relationship to benullif there is no corresponding relationship in the database.- Parameters:
nullAllowed-trueto allownullif the corresponding relationship in the database does not exists;falseotherwise
-