Class 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
    • Field Detail

      • fqClassnameToDescriptor

        protected java.util.Map<java.lang.String,​ClassDescriptor> fqClassnameToDescriptor
    • Constructor Detail

    • Method Detail

      • 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​(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 of DynamicEntityImpl
      • 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)
      • 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 -