private void addFromPropertiesGroup( String embeddedName, XProperty property, String accessType, Component propertyValue, Audited allClassAudited) { final ComponentAuditingData componentData = new ComponentAuditingData(); final boolean isAudited = fillPropertyData(property, componentData, accessType, allClassAudited); if (isAudited) { // EntityPersister.getPropertyNames() returns name of embedded component instead of class // field. componentData.setName(embeddedName); // Marking component properties as placed directly in class (not inside another component). componentData.setBeanName(null); final PersistentPropertiesSource componentPropertiesSource = new ComponentPropertiesSource(reflectionManager, propertyValue); final AuditedPropertiesReader audPropReader = new AuditedPropertiesReader( ModificationStore.FULL, componentPropertiesSource, componentData, globalCfg, reflectionManager, propertyNamePrefix + MappingTools.createComponentPrefix(embeddedName)); audPropReader.read(); auditedPropertiesHolder.addPropertyAuditingData(embeddedName, componentData); } }
private void addFromComponentProperty( XProperty property, String accessType, Component propertyValue, Audited allClassAudited) { final ComponentAuditingData componentData = new ComponentAuditingData(); final boolean isAudited = fillPropertyData(property, componentData, accessType, allClassAudited); if (propertyValue.isDynamic()) { if (isAudited) { throw new MappingException( "Audited dynamic-component properties are not supported. Consider applying @NotAudited annotation to " + propertyValue.getOwner().getEntityName() + "#" + property + "."); } return; } final PersistentPropertiesSource componentPropertiesSource = new ComponentPropertiesSource(reflectionManager, propertyValue); final ComponentAuditedPropertiesReader audPropReader = new ComponentAuditedPropertiesReader( ModificationStore.FULL, componentPropertiesSource, componentData, globalCfg, reflectionManager, propertyNamePrefix + MappingTools.createComponentPrefix(property.getName())); audPropReader.read(); if (isAudited) { // Now we know that the property is audited auditedPropertiesHolder.addPropertyAuditingData(property.getName(), componentData); } }