Examples of AuditMetadataGenerator


Examples of org.hibernate.envers.configuration.internal.metadata.AuditMetadataGenerator

    }

    // Now that all information is read we can update the calculated fields.
    classesAuditingData.updateCalculatedFields();

    final AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(
        cfg, globalCfg, verEntCfg, auditStrategy,
        classLoaderService, revisionInfoRelationMapping, auditEntityNameRegister
    );

    // First pass
    for ( Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData() ) {
      final PersistentClass pc = pcDatasEntry.getKey();
      final ClassAuditingData auditData = pcDatasEntry.getValue();

      final EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
      if ( auditData.isAudited() ) {
        if ( !StringTools.isEmpty( auditData.getAuditTable().value() ) ) {
          verEntCfg.addCustomAuditTableName( pc.getEntityName(), auditData.getAuditTable().value() );
        }

        auditMetaGen.generateFirstPass( pc, auditData, xmlMappingData, true );
      }
      else {
        auditMetaGen.generateFirstPass( pc, auditData, xmlMappingData, false );
      }

      xmlMappings.put( pc, xmlMappingData );
    }

    // Second pass
    for ( Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData() ) {
      final EntityXmlMappingData xmlMappingData = xmlMappings.get( pcDatasEntry.getKey() );

      if ( pcDatasEntry.getValue().isAudited() ) {
        auditMetaGen.generateSecondPass( pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData );
        try {
          cfg.addDocument( writer.write( xmlMappingData.getMainXmlMapping() ) );
          //writeDocument(xmlMappingData.getMainXmlMapping());

          for ( Document additionalMapping : xmlMappingData.getAdditionalXmlMappings() ) {
            cfg.addDocument( writer.write( additionalMapping ) );
            //writeDocument(additionalMapping);
          }
        }
        catch (DocumentException e) {
          throw new MappingException( e );
        }
      }
    }

    // Only if there are any versioned classes
    if ( auditMetaGen.getEntitiesConfigurations().size() > 0 ) {
      try {
        if ( revisionInfoXmlMapping != null ) {
          //writeDocument(revisionInfoXmlMapping);
          cfg.addDocument( writer.write( revisionInfoXmlMapping ) );
        }
      }
      catch (DocumentException e) {
        throw new MappingException( e );
      }
    }

    return new EntitiesConfigurations(
        auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations()
    );
  }
View Full Code Here

Examples of org.hibernate.envers.configuration.internal.metadata.AuditMetadataGenerator

    }

    // Now that all information is read we can update the calculated fields.
    classesAuditingData.updateCalculatedFields();

    final AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(
        cfg, globalCfg, verEntCfg, auditStrategy,
        classLoaderService, revisionInfoRelationMapping, auditEntityNameRegister
    );

    // First pass
    for ( Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData() ) {
      final PersistentClass pc = pcDatasEntry.getKey();
      final ClassAuditingData auditData = pcDatasEntry.getValue();

      final EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
      if ( auditData.isAudited() ) {
        if ( !StringTools.isEmpty( auditData.getAuditTable().value() ) ) {
          verEntCfg.addCustomAuditTableName( pc.getEntityName(), auditData.getAuditTable().value() );
        }

        auditMetaGen.generateFirstPass( pc, auditData, xmlMappingData, true );
      }
      else {
        auditMetaGen.generateFirstPass( pc, auditData, xmlMappingData, false );
      }

      xmlMappings.put( pc, xmlMappingData );
    }

    // Second pass
    for ( Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData() ) {
      final EntityXmlMappingData xmlMappingData = xmlMappings.get( pcDatasEntry.getKey() );

      if ( pcDatasEntry.getValue().isAudited() ) {
        auditMetaGen.generateSecondPass( pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData );
        try {
          cfg.addDocument( writer.write( xmlMappingData.getMainXmlMapping() ) );
          //writeDocument(xmlMappingData.getMainXmlMapping());

          for ( Document additionalMapping : xmlMappingData.getAdditionalXmlMappings() ) {
            cfg.addDocument( writer.write( additionalMapping ) );
            //writeDocument(additionalMapping);
          }
        }
        catch (DocumentException e) {
          throw new MappingException( e );
        }
      }
    }

    // Only if there are any versioned classes
    if ( auditMetaGen.getEntitiesConfigurations().size() > 0 ) {
      try {
        if ( revisionInfoXmlMapping != null ) {
          //writeDocument(revisionInfoXmlMapping);
          cfg.addDocument( writer.write( revisionInfoXmlMapping ) );
        }
      }
      catch (DocumentException e) {
        throw new MappingException( e );
      }
    }

    return new EntitiesConfigurations(
        auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations()
    );
  }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

        }

        // Now that all information is read we can update the calculated fields.
        classesAuditingData.updateCalculatedFields();

        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg,
                revisionInfoRelationMapping, auditEntityNameRegister);

        // First pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            PersistentClass pc = pcDatasEntry.getKey();
            ClassAuditingData auditData = pcDatasEntry.getValue();

            EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
            if (auditData.isAudited()) {
                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
      } else {
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
      }

            xmlMappings.put(pc, xmlMappingData);
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            if (pcDatasEntry.getValue().isAudited()) {
                auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
                try {
                    cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                    //writeDocument(xmlMappingData.getMainXmlMapping());

                    for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                        cfg.addDocument(writer.write(additionalMapping));
                        //writeDocument(additionalMapping);
                    }
                } catch (DocumentException e) {
                    throw new MappingException(e);
                }
            }
        }

        // Only if there are any versioned classes
        if (classesAuditingData.getAllClassAuditedData().size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

        }

        // Now that all information is read we can update the calculated fields.
        classesAuditingData.updateCalculatedFields();

        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg,
                revisionInfoRelationMapping, auditEntityNameRegister, classesAuditingData);

        // First pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            PersistentClass pc = pcDatasEntry.getKey();
            ClassAuditingData auditData = pcDatasEntry.getValue();

            EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
            if (auditData.isAudited()) {
                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
      } else {
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
      }

            xmlMappings.put(pc, xmlMappingData);
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            if (pcDatasEntry.getValue().isAudited()) {
                auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
                try {
                    cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                    //writeDocument(xmlMappingData.getMainXmlMapping());

                    for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                        cfg.addDocument(writer.write(additionalMapping));
                        //writeDocument(additionalMapping);
                    }
                } catch (DocumentException e) {
                    throw new MappingException(e);
                }
            }
        }

        // Only if there are any versioned classes
        if (classesAuditingData.getAllClassAuditedData().size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

        }

        // Now that all information is read we can update the calculated fields.
        classesAuditingData.updateCalculatedFields();

        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg, auditStrategy,
                revisionInfoRelationMapping, auditEntityNameRegister);

        // First pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            PersistentClass pc = pcDatasEntry.getKey();
            ClassAuditingData auditData = pcDatasEntry.getValue();

            EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
            if (auditData.isAudited()) {
                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
      } else {
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
      }

            xmlMappings.put(pc, xmlMappingData);
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            if (pcDatasEntry.getValue().isAudited()) {
                auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
                try {
                    cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                    //writeDocument(xmlMappingData.getMainXmlMapping());

                    for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                        cfg.addDocument(writer.write(additionalMapping));
                        //writeDocument(additionalMapping);
                    }
                } catch (DocumentException e) {
                    throw new MappingException(e);
                }
            }
        }

        // Only if there are any versioned classes
        if (auditMetaGen.getEntitiesConfigurations().size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

        }

        // Now that all information is read we can update the calculated fields.
        classesAuditingData.updateCalculatedFields();

        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg, auditStrategy,
                revisionInfoRelationMapping, auditEntityNameRegister);

        // First pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            PersistentClass pc = pcDatasEntry.getKey();
            ClassAuditingData auditData = pcDatasEntry.getValue();

            EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
            if (auditData.isAudited()) {
                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
      } else {
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
      }

            xmlMappings.put(pc, xmlMappingData);
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            if (pcDatasEntry.getValue().isAudited()) {
                auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
                try {
                    cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                    //writeDocument(xmlMappingData.getMainXmlMapping());

                    for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                        cfg.addDocument(writer.write(additionalMapping));
                        //writeDocument(additionalMapping);
                    }
                } catch (DocumentException e) {
                    throw new MappingException(e);
                }
            }
        }

        // Only if there are any versioned classes
        if (classesAuditingData.getAllClassAuditedData().size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

        }

        // Now that all information is read we can update the calculated fields.
        classesAuditingData.updateCalculatedFields();

        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg, auditStrategy,
                revisionInfoRelationMapping, auditEntityNameRegister);

        // First pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            PersistentClass pc = pcDatasEntry.getKey();
            ClassAuditingData auditData = pcDatasEntry.getValue();

            EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
            if (auditData.isAudited()) {
                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
      } else {
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
      }

            xmlMappings.put(pc, xmlMappingData);
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            if (pcDatasEntry.getValue().isAudited()) {
                auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
                try {
                    cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                    //writeDocument(xmlMappingData.getMainXmlMapping());

                    for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                        cfg.addDocument(writer.write(additionalMapping));
                        //writeDocument(additionalMapping);
                    }
                } catch (DocumentException e) {
                    throw new MappingException(e);
                }
            }
        }

        // Only if there are any versioned classes
        if (classesAuditingData.getAllClassAuditedData().size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

        }

        // Now that all information is read we can update the calculated fields.
        classesAuditingData.updateCalculatedFields();

        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg, auditStrategy,
                revisionInfoRelationMapping, auditEntityNameRegister);

        // First pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            PersistentClass pc = pcDatasEntry.getKey();
            ClassAuditingData auditData = pcDatasEntry.getValue();

            EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
            if (auditData.isAudited()) {
                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
      } else {
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
      }

            xmlMappings.put(pc, xmlMappingData);
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            if (pcDatasEntry.getValue().isAudited()) {
                auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
                try {
                    cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                    //writeDocument(xmlMappingData.getMainXmlMapping());

                    for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                        cfg.addDocument(writer.write(additionalMapping));
                        //writeDocument(additionalMapping);
                    }
                } catch (DocumentException e) {
                    throw new MappingException(e);
                }
            }
        }

        // Only if there are any versioned classes
        if (classesAuditingData.getAllClassAuditedData().size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

        }

        // Now that all information is read we can update the calculated fields.
        classesAuditingData.updateCalculatedFields();

        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg, auditStrategy,
                revisionInfoRelationMapping, auditEntityNameRegister);

        // First pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            PersistentClass pc = pcDatasEntry.getKey();
            ClassAuditingData auditData = pcDatasEntry.getValue();

            EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
            if (auditData.isAudited()) {
                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
      } else {
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
      }

            xmlMappings.put(pc, xmlMappingData);
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : classesAuditingData.getAllClassAuditedData()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            if (pcDatasEntry.getValue().isAudited()) {
                auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);
                try {
                    cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                    //writeDocument(xmlMappingData.getMainXmlMapping());

                    for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                        cfg.addDocument(writer.write(additionalMapping));
                        //writeDocument(additionalMapping);
                    }
                } catch (DocumentException e) {
                    throw new MappingException(e);
                }
            }
        }

        // Only if there are any versioned classes
        if (auditMetaGen.getEntitiesConfigurations().size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here

Examples of org.hibernate.envers.configuration.metadata.AuditMetadataGenerator

*/
public class EntitiesConfigurator {
    public EntitiesConfigurations configure(Configuration cfg, ReflectionManager reflectionManager,
                                            GlobalConfiguration globalCfg, AuditEntitiesConfiguration verEntCfg,
                                            Document revisionInfoXmlMapping, Element revisionInfoRelationMapping) {
        AuditMetadataGenerator auditMetaGen = new AuditMetadataGenerator(cfg, globalCfg, verEntCfg,
                revisionInfoRelationMapping);
        DOMWriter writer = new DOMWriter();

        // Sorting the persistent class topologically - superclass always before subclass
        Iterator<PersistentClass> classes = GraphTopologicalSort.sort(new PersistentClassGraphDefiner(cfg)).iterator();

        Map<PersistentClass, ClassAuditingData> pcDatas =
                new HashMap<PersistentClass, ClassAuditingData>();
        Map<PersistentClass, EntityXmlMappingData> xmlMappings = new HashMap<PersistentClass, EntityXmlMappingData>();

        // First pass
        while (classes.hasNext()) {
            PersistentClass pc = classes.next();
            // Collecting information from annotations on the persistent class pc
            AnnotationsMetadataReader annotationsMetadataReader =
                    new AnnotationsMetadataReader(globalCfg, reflectionManager, pc);
            ClassAuditingData auditData = annotationsMetadataReader.getAuditData();

            if (auditData.isAudited()) {
                pcDatas.put(pc, auditData);

                if (!StringTools.isEmpty(auditData.getAuditTable().value())) {
                    verEntCfg.addCustomAuditTableName(pc.getEntityName(), auditData.getAuditTable().value());
                }

                EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
                auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, true);
                xmlMappings.put(pc, xmlMappingData);
      } else {
        EntityXmlMappingData xmlMappingData = new EntityXmlMappingData();
        auditMetaGen.generateFirstPass(pc, auditData, xmlMappingData, false);
        xmlMappings.put(pc, xmlMappingData);
      }
        }

        // Second pass
        for (Map.Entry<PersistentClass, ClassAuditingData> pcDatasEntry : pcDatas.entrySet()) {
            EntityXmlMappingData xmlMappingData = xmlMappings.get(pcDatasEntry.getKey());

            auditMetaGen.generateSecondPass(pcDatasEntry.getKey(), pcDatasEntry.getValue(), xmlMappingData);

            try {
                cfg.addDocument(writer.write(xmlMappingData.getMainXmlMapping()));
                // TODO
                //writeDocument(xmlMappingData.getMainXmlMapping());

                for (Document additionalMapping : xmlMappingData.getAdditionalXmlMappings()) {
                    cfg.addDocument(writer.write(additionalMapping));
                    // TODO
                    //writeDocument(additionalMapping);
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

        // Only if there are any versioned classes
        if (pcDatas.size() > 0) {
            try {
                if (revisionInfoXmlMapping !=  null) {
                    // TODO
                    //writeDocument(revisionInfoXmlMapping);
                    cfg.addDocument(writer.write(revisionInfoXmlMapping));
                }
            } catch (DocumentException e) {
                throw new MappingException(e);
            }
        }

    return new EntitiesConfigurations(auditMetaGen.getEntitiesConfigurations(),
        auditMetaGen.getNotAuditedEntitiesConfigurations());
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.