org.apache.openjpa.persistence
Class AnnotationPersistenceMetaDataParser

java.lang.Object
  extended by org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser
All Implemented Interfaces:
MetaDataModes
Direct Known Subclasses:
AnnotationPersistenceMappingParser

public class AnnotationPersistenceMetaDataParser
extends Object
implements MetaDataModes

Persistence annotation metadata parser. Currently does not parse deployment descriptors.

Author:
Abe White, Steve Kim

Nested Class Summary
(package private) static class AnnotationPersistenceMetaDataParser.FetchAttributeImpl
          An internal class used to mimic the FetchAttribute annotation.
(package private) static class AnnotationPersistenceMetaDataParser.FetchGroupImpl
          An internal class used to mimic the FetchGroup annotation.
 
Field Summary
protected  Class<?> _cls
           
protected  Stack<Class<?>> _stack
           
 
Fields inherited from interface org.apache.openjpa.meta.MetaDataModes
MODE_ALL, MODE_ANN_MAPPING, MODE_MAPPING, MODE_MAPPING_INIT, MODE_META, MODE_NONE, MODE_QUERY
 
Constructor Summary
AnnotationPersistenceMetaDataParser(OpenJPAConfiguration conf)
          Constructor; supply configuration.
 
Method Summary
 void clear()
          Clear caches.
 OpenJPAConfiguration getConfiguration()
          Configuration supplied on construction.
 ClassLoader getEnvClassLoader()
          Return the environmental class loader to pass on to parsed metadata instances.
 Log getLog()
          Metadata log.
 boolean getMappingOverride()
          Whether to allow later parses of mapping information to override earlier information for the same class.
 int getMode()
          The parse mode.
 MetaDataRepository getRepository()
          Returns the repository for this parser.
protected  File getSourceFile()
          Determine the source file we're parsing.
protected  boolean handleUnknownClassAnnotation(ClassMetaData meta, Annotation anno)
          Allow subclasses to handle unknown annotations.
protected  boolean handleUnknownMemberAnnotation(FieldMetaData fmd, Annotation anno)
          Allow subclasses to handle unknown annotations.
protected  boolean handleUnknownPackageAnnotation(Package pkg, Annotation anno)
          Allow subclasses to handle unknown annotations.
protected  boolean isMappingMode()
          Convenience method for interpreting getMode().
protected  boolean isMappingOverrideMode()
          Returns true if we're in mapping mode or in metadata mode with mapping overide enabled.
protected  boolean isMetaDataMode()
          Convenience method for interpreting getMode().
protected  boolean isQueryMode()
          Convenience method for interpreting getMode().
protected  String normalizeCatalogName(String catName)
           
protected  String normalizeSchemaName(String schName)
           
protected  String normalizeSequenceName(String seqName)
           
 void parse(Class<?> cls)
          Parse persistence metadata for the given class.
static Collection<LifecycleCallbacks>[] parseCallbackMethods(Class<?> cls, Collection<LifecycleCallbacks>[] callbacks, boolean sups, boolean listener, MetaDataRepository repos)
          Parse callback methods into the given array, and return that array, creating one if null.
protected  void parseClassMappingAnnotations(ClassMetaData meta)
          Parse class mapping annotations.
(package private) static void parseDataCache(ClassMetaData meta, boolean enabled, String name, int timeout)
           
(package private) static void parseDataStoreId(ClassMetaData meta, GenerationType strategy, String generator)
           
(package private) static void parseFetchGroups(ClassMetaData meta, AnnotationPersistenceMetaDataParser.FetchGroupImpl... groups)
          Parse fetch group input for the FetchGroup and FetchGroups annotations as well as for the fetch-group and fetch-groups XML metadata
(package private) static void parseFetchGroups(ClassMetaData meta, FetchGroup... groups)
          Create fetch groups.
(package private) static void parseGeneratedValue(FieldMetaData fmd, GenerationType strategy, String generator)
          Sets value generation information for the given field.
protected  void parseLobMapping(FieldMetaData fmd)
          Setup the field as a LOB mapping.
protected  void parseMemberMappingAnnotations(FieldMetaData fmd)
          Parse member mapping components.
protected  void parsePackageMappingAnnotations(Package pkg)
          Parse package mapping annotations.
 void setEnvClassLoader(ClassLoader loader)
          Set the environmental class loader to pass on to parsed metadata instances.
 void setMappingOverride(boolean override)
          Whether to allow later parses of mapping information to override earlier information for the same class.
 void setMode(int mode)
          The parse mode.
 void setMode(int mode, boolean on)
          The parse mode.
 void setRepository(MetaDataRepository repos)
          Set the metadata repository for this parser.
static Class<?> toOverrideType(Class<?> cls)
          Convert the given class to its OpenJPA type override equivalent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_cls

protected Class<?> _cls

_stack

protected Stack<Class<?>> _stack
Constructor Detail

AnnotationPersistenceMetaDataParser

public AnnotationPersistenceMetaDataParser(OpenJPAConfiguration conf)
Constructor; supply configuration.

Method Detail

getConfiguration

public OpenJPAConfiguration getConfiguration()
Configuration supplied on construction.


getLog

public Log getLog()
Metadata log.


getRepository

public MetaDataRepository getRepository()
Returns the repository for this parser. If none has been set, create a new repository and sets it.


setRepository

public void setRepository(MetaDataRepository repos)
Set the metadata repository for this parser.


getEnvClassLoader

public ClassLoader getEnvClassLoader()
Return the environmental class loader to pass on to parsed metadata instances.


setEnvClassLoader

public void setEnvClassLoader(ClassLoader loader)
Set the environmental class loader to pass on to parsed metadata instances.


getMappingOverride

public boolean getMappingOverride()
Whether to allow later parses of mapping information to override earlier information for the same class. Defaults to false. Useful when a tool is mapping a class, so that annotation partial mapping information can be used even when mappings are stored in another location.


setMappingOverride

public void setMappingOverride(boolean override)
Whether to allow later parses of mapping information to override earlier information for the same class. Defaults to false. Useful when a tool is mapping a class, so that annotation partial mapping information can be used even when mappings are stored in another location.


getMode

public int getMode()
The parse mode.


setMode

public void setMode(int mode,
                    boolean on)
The parse mode.


setMode

public void setMode(int mode)
The parse mode.


isMetaDataMode

protected boolean isMetaDataMode()
Convenience method for interpreting getMode().


isQueryMode

protected boolean isQueryMode()
Convenience method for interpreting getMode().


isMappingMode

protected boolean isMappingMode()
Convenience method for interpreting getMode().


isMappingOverrideMode

protected boolean isMappingOverrideMode()
Returns true if we're in mapping mode or in metadata mode with mapping overide enabled.


clear

public void clear()
Clear caches.


parse

public void parse(Class<?> cls)
Parse persistence metadata for the given class.


parsePackageMappingAnnotations

protected void parsePackageMappingAnnotations(Package pkg)
Parse package mapping annotations.


handleUnknownPackageAnnotation

protected boolean handleUnknownPackageAnnotation(Package pkg,
                                                 Annotation anno)
Allow subclasses to handle unknown annotations.


parseClassMappingAnnotations

protected void parseClassMappingAnnotations(ClassMetaData meta)
Parse class mapping annotations.


handleUnknownClassAnnotation

protected boolean handleUnknownClassAnnotation(ClassMetaData meta,
                                               Annotation anno)
Allow subclasses to handle unknown annotations.


getSourceFile

protected File getSourceFile()
Determine the source file we're parsing.


parseDataStoreId

static void parseDataStoreId(ClassMetaData meta,
                             GenerationType strategy,
                             String generator)

parseDataCache

static void parseDataCache(ClassMetaData meta,
                           boolean enabled,
                           String name,
                           int timeout)

parseCallbackMethods

public static Collection<LifecycleCallbacks>[] parseCallbackMethods(Class<?> cls,
                                                                    Collection<LifecycleCallbacks>[] callbacks,
                                                                    boolean sups,
                                                                    boolean listener,
                                                                    MetaDataRepository repos)
Parse callback methods into the given array, and return that array, creating one if null. Each index into the array is a collection of callback adapters for that numeric event type.

Parameters:
sups - whether to scan superclasses
listener - whether this is a listener or not

parseFetchGroups

static void parseFetchGroups(ClassMetaData meta,
                             FetchGroup... groups)
Create fetch groups. If FetchGroup A includes FetchGroup B, then a bi-link is set between A and B. Both A and B must be declared in the same Class.
Call #parseFetchAttribute(ClassMetaData, org.apache.openjpa.meta.FetchGroup, FetchAttribute) only after the bi-links have been established, because a field f will not only add the fetch group A which explicitly includes f to its custom fetch groups but also will also add any fetch group B that includes A.


parseFetchGroups

static void parseFetchGroups(ClassMetaData meta,
                             AnnotationPersistenceMetaDataParser.FetchGroupImpl... groups)
Parse fetch group input for the FetchGroup and FetchGroups annotations as well as for the fetch-group and fetch-groups XML metadata

Parameters:
meta -
groups -

parseMemberMappingAnnotations

protected void parseMemberMappingAnnotations(FieldMetaData fmd)
Parse member mapping components.


handleUnknownMemberAnnotation

protected boolean handleUnknownMemberAnnotation(FieldMetaData fmd,
                                                Annotation anno)
Allow subclasses to handle unknown annotations.


toOverrideType

public static Class<?> toOverrideType(Class<?> cls)
Convert the given class to its OpenJPA type override equivalent.


parseGeneratedValue

static void parseGeneratedValue(FieldMetaData fmd,
                                GenerationType strategy,
                                String generator)
Sets value generation information for the given field.


parseLobMapping

protected void parseLobMapping(FieldMetaData fmd)
Setup the field as a LOB mapping.


normalizeSequenceName

protected String normalizeSequenceName(String seqName)

normalizeSchemaName

protected String normalizeSchemaName(String schName)

normalizeCatalogName

protected String normalizeCatalogName(String catName)


Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.