com.force.sdk.jpa
Class ForceMetaDataManager

java.lang.Object
  extended by org.datanucleus.metadata.MetaDataManager
      extended by org.datanucleus.jpa.metadata.JPAMetaDataManager
          extended by com.force.sdk.jpa.ForceMetaDataManager

public class ForceMetaDataManager
extends org.datanucleus.jpa.metadata.JPAMetaDataManager

Custom Metadata Manager so we can control the timing of Force.com object and field creation.

Author:
Jill Wetzler

Field Summary
 
Fields inherited from class org.datanucleus.jpa.metadata.JPAMetaDataManager
listeners
 
Fields inherited from class org.datanucleus.metadata.MetaDataManager
allowMetaDataLoad, annotationManager, classesWithoutPersistenceInfo, classMetaDataByAppIdClassName, classMetaDataByClass, classMetaDataByDiscriminatorName, classMetaDataByEntityName, directSubclassesByClass, fetchPlanMetaDataByName, fileMetaDataByURLString, LOCALISER, metaDataParser, omfContext, queryMetaDataByName, queryResultMetaDataByName, sequenceMetaDataByPackageSequence, supportsORM, tableGeneratorMetaDataByPackageSequence, userMetaDataNumber, utilisedFileMetaData, validateMetaData
 
Constructor Summary
ForceMetaDataManager(org.datanucleus.OMFContext ctxt)
          Create the metadata manager.
 
Method Summary
protected  void initialiseFileMetaDataForUse(Collection fileMetaData, org.datanucleus.ClassLoaderResolver clr)
          Method to initialise the provided FileMetaData, ready for use.
 org.datanucleus.metadata.FileMetaData[] loadPersistenceUnit(org.datanucleus.metadata.PersistenceUnitMetaData pumd, ClassLoader loader)
          Load and sync schema for all persistence units.
 
Methods inherited from class org.datanucleus.jpa.metadata.JPAMetaDataManager
getListeners, getMetaDataForClassInternal, parseFile, registerFile
 
Methods inherited from class org.datanucleus.metadata.MetaDataManager
addORMDataToClass, close, deregisterListener, getAllowMetaDataLoad, getApiAdapter, getClassesImplementingInterface, getClassesWithMetaData, getClassMetaDataForImplementationOfPersistentInterface, getClassMetaDataWithApplicationId, getFileMetaData, getImplementationNameForPersistentInterface, getMetaDataForClass, getMetaDataForClass, getMetaDataForDiscriminator, getMetaDataForEntityName, getMetaDataForFetchPlan, getMetaDataForImplementationOfReference, getMetaDataForInterface, getMetaDataForMember, getMetaDataForMember, getMetaDataForPersistenceUnit, getMetaDataForQuery, getMetaDataForQueryResult, getMetaDataForSequence, getMetaDataForTableGenerator, getOMFContext, getReferencedClasses, getReferencedClassMetaData, getSubclassesForClass, hasMetaDataForClass, initialiseAbstractClassMetaData, initialiseClassMetaData, initialiseFileMetaData, initialiseInterfaceMetaData, isClassPersistable, isClassWithoutPersistenceInfo, isEnhancing, isFieldTypePersistable, isPersistentDefinitionImplementation, isPersistentInterface, isPersistentInterfaceImplementation, loadAnnotationsForClass, loadClasses, loadFiles, loadJar, loadMetadataFiles, loadUserMetaData, logConfiguration, parsePersistenceFiles, populateAbstractClassMetaData, populateFileMetaData, readMetaDataForClass, readMetaDataForMember, registerFetchPlansForFile, registerImplementationOfAbstractClass, registerListener, registerMetaDataForClass, registerPersistentInterface, registerQueriesForFile, registerQueryResultMetaDataForFile, registerSequencesForFile, registerTableGeneratorsForFile, setAllowMetaDataLoad, setValidate, supportsORM
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ForceMetaDataManager

public ForceMetaDataManager(org.datanucleus.OMFContext ctxt)
Create the metadata manager.

Parameters:
ctxt - the object manager facory context
Method Detail

loadPersistenceUnit

public org.datanucleus.metadata.FileMetaData[] loadPersistenceUnit(org.datanucleus.metadata.PersistenceUnitMetaData pumd,
                                                                   ClassLoader loader)
Load and sync schema for all persistence units. The call to the super class will do the main work -- everything data nucleus needs plus the creation of custom SObjects in the user's Force.com org. The second part is to create the custom fields on each object. We have to do these separately because the order of object creation is not guaranteed, and this way we can be sure that all lookup fields will be referring to an object that already exists

Overrides:
loadPersistenceUnit in class org.datanucleus.metadata.MetaDataManager

initialiseFileMetaDataForUse

protected void initialiseFileMetaDataForUse(Collection fileMetaData,
                                            org.datanucleus.ClassLoaderResolver clr)
Method to initialise the provided FileMetaData, ready for use. We copied this method verbatim from base class only to be able to call the pre/postInitialise methods.

Overrides:
initialiseFileMetaDataForUse in class org.datanucleus.metadata.MetaDataManager
Parameters:
fileMetaData - Collection of FileMetaData
clr - ClassLoader resolver
Throws:
org.datanucleus.exceptions.NucleusUserException - thrown if an error occurs during the populate/initialise of the supplied metadata.


Copyright © 2011. All Rights Reserved.