Package org.eclipse.persistence.dynamic
Class DynamicHelper
- java.lang.Object
-
- org.eclipse.persistence.dynamic.DynamicHelper
-
- Direct Known Subclasses:
JPADynamicHelper
public class DynamicHelper extends java.lang.Object
A DynamicHelper provides some utility methods to simplify application development with dynamic types. Since the application does not have static references to the dynamic types it must use entity names. This helper provides simplified access to methods that would typically require the static classes.- Author:
- dclarke, mnorman
- Since:
- EclipseLink 1.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DynamicHelper.SessionCustomizer
A SessionCustomizer which configures all descriptors as dynamic entity types.
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.String,ClassDescriptor>
fqClassnameToDescriptor
protected DatabaseSession
session
-
Constructor Summary
Constructors Constructor Description DynamicHelper(DatabaseSession session)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTypes(boolean createMissingTables, boolean generateFKConstraints, DynamicType... types)
Add one or more EntityType instances to a session and optionally generate needed tables with or without FK constraints.DynamicClassLoader
getDynamicClassLoader()
DatabaseSession
getSession()
DynamicType
getType(java.lang.String typeName)
Lookup the dynamic type for an alias.static DynamicType
getType(ClassDescriptor descriptor)
static DynamicType
getType(DynamicEntity entity)
Provide access to the entity's type.DynamicEntity
newDynamicEntity(java.lang.String typeName)
ReadAllQuery
newReadAllQuery(java.lang.String typeName)
Helper method to simplify creating a native ReadAllQuery using the entity type name (descriptor alias)ReadObjectQuery
newReadObjectQuery(java.lang.String typeName)
Helper method to simplify creating a native ReadObjectQuery using the entity type name (descriptor alias)ReportQuery
newReportQuery(java.lang.String typeName, ExpressionBuilder builder)
Helper method to simplify creating a native ReportQuery using the entity type name (descriptor alias)void
removeType(java.lang.String typeName)
Remove a dynamic type from the system.
-
-
-
Field Detail
-
session
protected DatabaseSession session
-
fqClassnameToDescriptor
protected java.util.Map<java.lang.String,ClassDescriptor> fqClassnameToDescriptor
-
-
Constructor Detail
-
DynamicHelper
public DynamicHelper(DatabaseSession session)
-
-
Method Detail
-
getSession
public DatabaseSession getSession()
-
getType
public DynamicType getType(java.lang.String typeName)
Lookup the dynamic type for an alias. This is required to get the type for factory creation but can also be used to provide the application with access to the meta model (type and properties) allowing for dynamic use as well as optimized data value retrieval from an entity.
-
getType
public static DynamicType getType(ClassDescriptor descriptor)
-
getType
public static DynamicType getType(DynamicEntity entity) throws java.lang.ClassCastException
Provide access to the entity's type.- Parameters:
entity
-- Returns:
- Throws:
java.lang.ClassCastException
- if entity is not an instance ofDynamicEntityImpl
-
removeType
public void removeType(java.lang.String typeName)
Remove a dynamic type from the system. This implementation assumes that the dynamic type has no relationships to it and that it is not involved in an inheritance relationship. If there are concurrent processes using this type when it is removed some exceptions may occur.- Parameters:
typeName
-
-
newDynamicEntity
public DynamicEntity newDynamicEntity(java.lang.String typeName)
-
newReadAllQuery
public ReadAllQuery newReadAllQuery(java.lang.String typeName)
Helper method to simplify creating a native ReadAllQuery using the entity type name (descriptor alias)
-
newReadObjectQuery
public ReadObjectQuery newReadObjectQuery(java.lang.String typeName)
Helper method to simplify creating a native ReadObjectQuery using the entity type name (descriptor alias)
-
newReportQuery
public ReportQuery newReportQuery(java.lang.String typeName, ExpressionBuilder builder)
Helper method to simplify creating a native ReportQuery using the entity type name (descriptor alias)
-
getDynamicClassLoader
public DynamicClassLoader getDynamicClassLoader()
-
addTypes
public void addTypes(boolean createMissingTables, boolean generateFKConstraints, DynamicType... types)
Add one or more EntityType instances to a session and optionally generate needed tables with or without FK constraints.- Parameters:
createMissingTables
-generateFKConstraints
-types
-
-
-