public class TransformerFactory
extends java.lang.Object
EntityManagerSetupImpl.predeploy(javax.persistence.spi.PersistenceUnitInfo, java.util.Map)
Note: The Session's Project is is scanned to ensure that weaving is
supported and is modified to suit (set the ObjectChangePolicy
for the Descriptor).
Modifier and Type | Field and Description |
---|---|
protected java.util.Map |
classDetailsMap |
protected java.lang.ClassLoader |
classLoader |
protected java.util.List |
embeddableClasses |
protected java.util.Collection |
entityClasses |
protected Session |
session |
static java.lang.String |
WEAVER_ADDING_EMBEDDABLE |
static java.lang.String |
WEAVER_CLASS_NOT_IN_PROJECT |
static java.lang.String |
WEAVER_DISABLE_BY_SYSPROP |
static java.lang.String |
WEAVER_FOUND_FIELD_LOCK |
static java.lang.String |
WEAVER_NULL_PROJECT |
static java.lang.String |
WEAVER_PROCESSING_CLASS |
Constructor and Description |
---|
TransformerFactory(Session session,
java.util.Collection entityClasses,
java.lang.ClassLoader classLoader) |
Modifier and Type | Method and Description |
---|---|
void |
addClassDetailsForMappedSuperClasses(java.lang.Class clz,
ClassDescriptor initialDescriptor,
ClassDetails classDetails,
java.util.Map classDetailsMap,
java.util.List unMappedAttributes)
INTERNAL:
Look higher in the hierarchy for the mappings listed in the unMappedAttribute list.
|
void |
buildClassDetailsAndModifyProject()
Build a list ClassDetails instance that contains a ClassDetails for each class
in our entities list.
|
javax.persistence.spi.ClassTransformer |
buildTopLinkWeaver() |
protected boolean |
canWeaveValueHolders(java.lang.Class clz,
java.util.List mappings) |
static javax.persistence.spi.ClassTransformer |
createTransformerAndModifyProject(Session session,
java.util.Collection entityClasses,
java.lang.ClassLoader classLoader) |
protected ClassDescriptor |
findDescriptor(Project project,
java.lang.String className)
Find a descriptor by name in the given project
used to avoid referring to descriptors by class.
|
protected static boolean |
hasField(java.lang.Class clz,
java.lang.String fieldName) |
protected void |
log(int level,
java.lang.String msg,
java.lang.Object[] params) |
protected java.util.List |
storeAttributeMappings(java.lang.Class clz,
ClassDetails classDetails,
java.util.List mappings,
boolean weaveValueHolders)
INTERNAL:
Store a set of attribute mappings on the given ClassDetails taht correspont to the given class.
|
public static final java.lang.String WEAVER_NULL_PROJECT
public static final java.lang.String WEAVER_DISABLE_BY_SYSPROP
public static final java.lang.String WEAVER_ADDING_EMBEDDABLE
public static final java.lang.String WEAVER_FOUND_FIELD_LOCK
public static final java.lang.String WEAVER_CLASS_NOT_IN_PROJECT
public static final java.lang.String WEAVER_PROCESSING_CLASS
protected Session session
protected java.util.Collection entityClasses
protected java.util.List embeddableClasses
protected java.util.Map classDetailsMap
protected java.lang.ClassLoader classLoader
public TransformerFactory(Session session, java.util.Collection entityClasses, java.lang.ClassLoader classLoader)
public static javax.persistence.spi.ClassTransformer createTransformerAndModifyProject(Session session, java.util.Collection entityClasses, java.lang.ClassLoader classLoader)
public void addClassDetailsForMappedSuperClasses(java.lang.Class clz, ClassDescriptor initialDescriptor, ClassDetails classDetails, java.util.Map classDetailsMap, java.util.List unMappedAttributes)
public javax.persistence.spi.ClassTransformer buildTopLinkWeaver()
public void buildClassDetailsAndModifyProject()
protected boolean canWeaveValueHolders(java.lang.Class clz, java.util.List mappings)
protected java.util.List storeAttributeMappings(java.lang.Class clz, ClassDetails classDetails, java.util.List mappings, boolean weaveValueHolders)
protected ClassDescriptor findDescriptor(Project project, java.lang.String className)
protected static boolean hasField(java.lang.Class clz, java.lang.String fieldName)
protected void log(int level, java.lang.String msg, java.lang.Object[] params)