Package org.eclipse.persistence.jpa.dynamic

Examples of org.eclipse.persistence.jpa.dynamic.JPADynamicTypeBuilder


     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here


    for (Map.Entry<Class, String> entry: entityClassMap.entrySet()) {
      String entityName = entry.getValue();
      Class<?> javaType = dcl.createDynamicClass(entityName);
      String tableName  = getTableName(entityMap.get(entityName));

      JPADynamicTypeBuilder typeBuilder = new JPADynamicTypeBuilder(javaType, null, tableName);
      typeBuilderMap.put(entityName, typeBuilder);
    }

    // add the direct mapped properties to the dynamic type builders
    for (Map.Entry<Class, String> entry: entityClassMap.entrySet()) {

      Class                 clazz       = entry.getKey();
      String                entityName  = entry.getValue();
      JPADynamicTypeBuilder typeBuilder = typeBuilderMap.get(entityName);

      Map<String, PropertyDescriptor> descriptorMap = getDescriptorMap(clazz);

      for (Map.Entry<String, PropertyDescriptor> descriptorEntry : descriptorMap.entrySet()) {
        String             propertyName = descriptorEntry.getKey();
        PropertyDescriptor descriptor   = descriptorEntry.getValue();

        if (propertyName.equals(entityMap.get(entityName).getIdProperty())) {
          typeBuilder.setPrimaryKeyFields(propertyName);
        }

        Class<?> propertyType = descriptor.getPropertyType();

        if (isDirectMappingType(propertyType)) {
          typeBuilder.addDirectMapping(propertyName, propertyType, propertyName);
        }
      }
    }

    // add the relationships to the dynamic type builders
    for (Map.Entry<Class, String> entry: entityClassMap.entrySet()) {

      Class                 clazz       = entry.getKey();
      String                entityName  = entry.getValue();
      JPADynamicTypeBuilder typeBuilder = typeBuilderMap.get(entityName);

      Map<String, PropertyDescriptor> descriptorMap = getDescriptorMap(clazz);

      for (Map.Entry<String, PropertyDescriptor> descriptorEntry : descriptorMap.entrySet()) {
        String propertyName = descriptorEntry.getKey();
        PropertyDescriptor descriptor = descriptorEntry.getValue();
        if (propertyName.equals(entityMap.get(entityName).getIdProperty())) {
          typeBuilder.setPrimaryKeyFields(propertyName);
        }

        Class<?> propertyType = descriptor.getPropertyType();
        String refEntityName = entityClassMap.get(propertyType);

        if (refEntityName == null) {
          if (Collection.class.isAssignableFrom(propertyType)) {

            String tableName = getTableName(entityMap.get(entityName)) + "_" + propertyName;

            Class<?> parameterizedTypeClass = getParameterizedTypeClass(clazz, propertyName);

            refEntityName = entityClassMap.get(parameterizedTypeClass);

            if (refEntityName == null) {
              typeBuilder.addDirectCollectionMapping(propertyName, tableName, propertyName,
                  parameterizedTypeClass, entityMap.get(entityName).getIdProperty());
            } else {
              DynamicType refType = typeBuilderMap.get(refEntityName).getType();
              typeBuilder.addManyToManyMapping(propertyName, refType, tableName);
            }
          }
        } else {
          DynamicType refType = typeBuilderMap.get(refEntityName).getType();
          typeBuilder.addOneToOneMapping(propertyName, refType, propertyName);
        }
      }
    }

    DynamicType[] types = new DynamicType[ typeBuilderMap.size()];
    int i = typeBuilderMap.size() - 1;
    for (JPADynamicTypeBuilder typeBuilder : typeBuilderMap.values()) {
      types[i--] = typeBuilder.getType();
    }
    helper.addTypes(true, true, types);

    // extend the tables if needed (i.e. attribute added to the view entity)
    schemaManagerFactory.getSchemaManager(helper.getSession()).extendDefaultTables(true);
View Full Code Here

    return !Collection.class.isAssignableFrom(propertyType) && entityClassMap.get(propertyType) == null;
  }

  // get the dynamic entity type from the given view entity class
  private DynamicType getDynamicEntityType(Class clazz) {
    JPADynamicTypeBuilder builder = typeBuilderMap.get(entityClassMap.get(clazz));

    return builder == null ? null : builder.getType();
  }
View Full Code Here

     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here

     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here

     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here

     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here

     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here

     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here

     * at deploy time after all metadata processing has completed.
     */
    protected void createDynamicType(MetadataDescriptor descriptor, Map<String, DynamicType> dynamicTypes, DynamicClassLoader dcl) {
        // Build the dynamic class only if we have not already done so.
        if (! dynamicTypes.containsKey(descriptor.getJavaClassName())) {
            JPADynamicTypeBuilder typeBuilder = null;
           
            if (descriptor.isInheritanceSubclass()) {
                // Get the parent descriptor
                MetadataDescriptor parentDescriptor = descriptor.getInheritanceParentDescriptor();
               
                // Recursively call up the parents.
                createDynamicType(parentDescriptor, dynamicTypes, dcl);
               
                // Create the dynamic type using the parent type.
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), dynamicTypes.get(parentDescriptor.getJavaClassName()));
            } else {
                // Create the dynamic type
                typeBuilder = new JPADynamicTypeBuilder(dcl, descriptor.getClassDescriptor(), null);
            }
           
            // Store the type builder by java class name.
            dynamicTypes.put(descriptor.getJavaClassName(), typeBuilder.getType());
        }
    }
View Full Code Here

TOP

Related Classes of org.eclipse.persistence.jpa.dynamic.JPADynamicTypeBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.