Package org.hibernate.envers.configuration.internal.metadata

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


    }

    // 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

TOP

Related Classes of org.hibernate.envers.configuration.internal.metadata.AuditMetadataGenerator

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.