org.jpox.metadata
Class JPAMetaDataManager

java.lang.Object
  extended by org.jpox.metadata.MetaDataManager
      extended by org.jpox.metadata.JPAMetaDataManager

public class JPAMetaDataManager
extends MetaDataManager

Manager of JPA MetaData information in JPOX. Manages the MetaData for a particular "persistence-unit".

Version:
$Revision: 1.8 $

Field Summary
protected  java.util.Map classMetaDataByEntityName
          Map of ClassMetaData, keyed by the JPA "entity name".
protected  boolean initialised
          Flag for initialisation state.
protected  PersistenceUnitMetaData unitMetaData
          MetaData for the PersistenceUnit being managed.
 
Fields inherited from class org.jpox.metadata.MetaDataManager
annotationManager, classMetaDataByClass, enhancing, fileMetaDataByURLString, LOCALISER, metaDataParser, pmfContext, queryMetaDataByName, sequenceMetaDataByPackageSequence, tableGeneratorMetaDataByPackageSequence, validateMetaData
 
Constructor Summary
JPAMetaDataManager(PMFContext pmfContext)
          Constructor.
 
Method Summary
 AbstractClassMetaData getMetaDataForClassInternal(java.lang.Class c, ClassLoaderResolver clr)
          Accessor for the JPA MetaData for a class.
 AbstractClassMetaData getMetaDataForEntityName(java.lang.String entityName)
          Accessor for the MetaData for a class.
 boolean hasMetaDataForClass(java.lang.String class_name)
          Convenience method to check if the specified class has metadata.
 void initialise(PersistenceUnitMetaData pumd, ClassLoaderResolver clr)
          Initialisation method to define the "persistence-unit" being handled.
protected  boolean isClassWithoutMetaData(java.lang.String className)
          Accessor for whether a class doesn't have MetaData.
protected  FileMetaData parseFile(java.net.URL fileURL)
          Utility to parse a file, using the "jpa" MetaData handler.
protected  void registerFile(java.lang.String fileURLString, FileMetaData filemd)
          Method to take the FileMetaData and register the relevant parts of it with the various convenience collections/maps that we use for access.
protected  void registerSequencesForFile(FileMetaData filemd)
          Convenience method to register all sequences found in the passed file.
protected  void registerTableGeneratorsForFile(FileMetaData filemd)
          Convenience method to register all table generators found in the passed file.
 
Methods inherited from class org.jpox.metadata.MetaDataManager
addORMDataToClass, close, getClassesImplementingInterface, getClassesWithMetaData, getClassMetaDataForImplementationOfPersistentInterface, getImplementationNameForPersistentInterface, getMetaDataForClass, getMetaDataForClass, getMetaDataForField, getMetaDataForField, getMetaDataForImplementationOfReference, getMetaDataForInterface, getMetaDataForQuery, getMetaDataForSequence, getMetaDataForTableGenerator, getPMFContext, getReferencedClassMetaData, getSubclassesForClass, initialiseClassMetaData, initialiseFileMetaData, initialiseInterfaceMetaData, isEnhancing, isPersistentInterface, isPersistentInterfaceImplementation, loadAnnotationsForClass, newClassObject, newFieldObject, newPropertyObject, parsePersistenceFiles, populateFileMetaData, readMetaDataForClass, readMetaDataForField, registerPersistentInterface, registerQueriesForFile, setValidate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classMetaDataByEntityName

protected java.util.Map classMetaDataByEntityName
Map of ClassMetaData, keyed by the JPA "entity name".


unitMetaData

protected PersistenceUnitMetaData unitMetaData
MetaData for the PersistenceUnit being managed.


initialised

protected boolean initialised
Flag for initialisation state.

Constructor Detail

JPAMetaDataManager

public JPAMetaDataManager(PMFContext pmfContext)
Constructor.

Parameters:
pmfContext - PMF Context that this metadata manager operates in
Method Detail

initialise

public void initialise(PersistenceUnitMetaData pumd,
                       ClassLoaderResolver clr)
Initialisation method to define the "persistence-unit" being handled.

Parameters:
pumd - The MetaData for this "persistence-unit"

parseFile

protected FileMetaData parseFile(java.net.URL fileURL)
Utility to parse a file, using the "jpa" MetaData handler.

Specified by:
parseFile in class MetaDataManager
Parameters:
fileURL - URL of the file
Returns:
The FileMetaData for this file

registerFile

protected void registerFile(java.lang.String fileURLString,
                            FileMetaData filemd)
Method to take the FileMetaData and register the relevant parts of it with the various convenience collections/maps that we use for access.

Specified by:
registerFile in class MetaDataManager
Parameters:
fileURLString - URL of the metadata file
filemd - The File MetaData

registerSequencesForFile

protected void registerSequencesForFile(FileMetaData filemd)
Convenience method to register all sequences found in the passed file.

Overrides:
registerSequencesForFile in class MetaDataManager
Parameters:
filemd - MetaData for the file

registerTableGeneratorsForFile

protected void registerTableGeneratorsForFile(FileMetaData filemd)
Convenience method to register all table generators found in the passed file.

Overrides:
registerTableGeneratorsForFile in class MetaDataManager
Parameters:
filemd - MetaData for the file

getMetaDataForClassInternal

public AbstractClassMetaData getMetaDataForClassInternal(java.lang.Class c,
                                                         ClassLoaderResolver clr)
Accessor for the JPA MetaData for a class. With JPA we either register the classes in "persistence.xml" (via "class", "jar-file" or "mapping-file") or we have them annotated. If they havent been loaded when we loaded "persistence.xml" then we only check for annotations in that class.

Specified by:
getMetaDataForClassInternal in class MetaDataManager
Parameters:
c - The class to find MetaData for
Returns:
The ClassMetaData for this class (or null if not found)

getMetaDataForEntityName

public AbstractClassMetaData getMetaDataForEntityName(java.lang.String entityName)
Accessor for the MetaData for a class.

Overrides:
getMetaDataForEntityName in class MetaDataManager
Parameters:
entityName - The entity name to find MetaData for
Returns:
The ClassMetaData for this entity name (or null if not found)

hasMetaDataForClass

public boolean hasMetaDataForClass(java.lang.String class_name)
Convenience method to check if the specified class has metadata.

Specified by:
hasMetaDataForClass in class MetaDataManager
Parameters:
class_name - The name of the class to check
Returns:
Whether the metadata is already registered for this class

isClassWithoutMetaData

protected boolean isClassWithoutMetaData(java.lang.String className)
Accessor for whether a class doesn't have MetaData.

Specified by:
isClassWithoutMetaData in class MetaDataManager
Parameters:
className - Name of the class
Returns:
Whether it has no metadata.


Copyright © -2008 . All Rights Reserved.