public static void CheckPropertyNotARelation(AuditConfiguration verCfg, String entityName, String propertyName){ if (verCfg.EntCfg[entityName].IsRelation(propertyName)) { throw new AuditException("This criterion cannot be used on a property that is " + "a relation to another property."); } }
public void MapToEntityFromMap(AuditConfiguration verCfg, Object obj, IDictionary<String, Object> data, Object primaryKey, IAuditReaderImplementor versionsReader, long revision) { //TODO in implementing second phase///////////// throw new NotImplementedException("Not Implemented!"); //if (obj == null) { // return; //}Not implememented //System.Type entityClass = ReflectionTools.loadClass(owningEntityName); //Object value; //try { // value = versionsReader.CreateQuery().ForEntitiesAtRevision(entityClass, revision) // //.Add( (AuditEntity.relatedId(owningReferencePropertyName).eq(primaryKey)).GetSingleResult(); //} catch (NoResultException e) { // value = null; //} catch (NonUniqueResultException e) { // throw new AuditException("Many versions results for one-to-one relationship: (" + owningEntityName + // ", " + owningReferencePropertyName + ")"); //} //ISetter setter = ReflectionTools.getSetter(obj.getClass(), propertyData); //Catalina: la portare se foloseste PropertyInfo. Exemple in MultiPropertyMapper si SinglePropertyMapper //setter.set(obj, value, null); }
protected AbstractAuditWorkUnit(ISessionImplementor sessionImplementor, String entityName, AuditConfiguration verCfg, Object id) { this.sessionImplementor = sessionImplementor; this.verCfg = verCfg; this.EntityId = id; this.EntityName = entityName; }
public void MapToEntityFromMap(NHibernate.Envers.Configuration.AuditConfiguration verCfg, object obj, IDictionary <object, object> data, object primaryKey, NHibernate.Envers.Reader.IAuditReaderImplementor versionsReader, long revision) { // //TODO in implementing second phase///////////// //if (obj == null) { // return; // } ////System.Type entityClass = ReflectionTools.loadClass(owningEntityName); // System.Runtime.Remoting.ObjectHandle hdl = Activator.CreateInstance(owningEntityName); // System.Type entityClass = hdl.GetType(); // Object value; // try { // value = versionsReader.CreateQuery().ForEntitiesAtRevision(entityClass, revision) // .Add(AuditEntity.relatedId(owningReferencePropertyName).eq(primaryKey)).GetSingleResult(); // } catch (NoResultException e) { // value = null; // } catch (NonUniqueResultException e) { // throw new AuditException("Many versions results for one-to-one relationship: (" + owningEntityName + // ", " + owningReferencePropertyName + ")"); // } // Setter setter = ReflectionTools.getSetter(obj.getClass(), propertyData); // setter.set(obj, value, null); }
public void AddToQuery(AuditConfiguration auditCfg, String entityName, QueryBuilder qb, Parameters parameters) { String propertyName = propertyNameGetter.Get(auditCfg); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); // This will be the aggregated query, containing all the specified conditions QueryBuilder subQb = qb.NewSubQueryBuilder(); // Adding all specified conditions both to the main query, as well as to the // aggregated one. foreach (IAuditCriterion versionsCriteria in criterions) { versionsCriteria.AddToQuery(auditCfg, entityName, qb, parameters); versionsCriteria.AddToQuery(auditCfg, entityName, subQb, subQb.RootParameters); } // Setting the desired projection of the aggregated query switch (mode) { case AggregatedMode.MIN: subQb.AddProjection("min", propertyName, false); break; case AggregatedMode.MAX: subQb.AddProjection("max", propertyName, false); break; } // Adding the constrain on the result of the aggregated criteria parameters.AddWhere(propertyName, "=", subQb); }
public void AddToQuery(AuditConfiguration auditCfg, String entityName, QueryBuilder qb, Parameters parameters) { String propertyName = propertyNameGetter.Get(auditCfg); CriteriaTools.CheckPropertyNotARelation(auditCfg, entityName, propertyName); parameters.AddWhereWithParam(propertyName, ">=", lo); parameters.AddWhereWithParam(propertyName, "<=", hi); }
public EntitiesAtRevisionQuery(AuditConfiguration verCfg, IAuditReaderImplementor versionsReader, System.Type cls, long revision) : base(verCfg, versionsReader, cls) { this.revision = revision; }
public void MapToEntityFromMap(AuditConfiguration verCfg, object obj, IDictionary data, object primaryKey, IAuditReaderImplementor versionsReader, long revision) { if (data == null || obj == null) { return; } var setter = ReflectionTools.GetSetter(obj.GetType(), _propertyData); // If all properties are null and single, then the component has to be null also. var allNullAndSingle = true; foreach (var property in _delegate.Properties) { if (data[property.Key.Name] != null || !(property.Value is SinglePropertyMapper)) { allNullAndSingle = false; break; } } // And we don't have to set anything on the object - the default value is null if (!allNullAndSingle) { var subObj = new Dictionary<string, object>(); foreach (var propertyData in _delegate.Properties.Keys) { subObj[propertyData.BeanName] = data[propertyData.Name]; } setter.Set(obj, subObj); } }
public DelWorkUnit(ISessionImplementor sessionImplementor, String entityName, AuditConfiguration verCfg, Object id, IEntityPersister entityPersister, Object[] state) : base(sessionImplementor, entityName, verCfg, id) { this.state = state; this.propertyNames = entityPersister.PropertyNames; }
public void AddToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) { Parameters opParameters = parameters.AddSubParameters(op); lhs.AddToQuery(verCfg, entityName, qb, opParameters.AddSubParameters("and")); rhs.AddToQuery(verCfg, entityName, qb, opParameters.AddSubParameters("and")); }
public void MapToEntityFromMap(AuditConfiguration verCfg, Object obj, IDictionary<String, Object> data, Object primaryKey, IAuditReaderImplementor versionsReader, long revision) { if (data == null || obj == null) { return; } //ORIG: Setter setter = ReflectionTools.getSetter(obj.getClass(), propertyData); PropertyInfo propInfo = obj.GetType().GetProperty(propertyData.Name); // If all properties are null and single, then the component has to be null also. bool allNullAndSingle = true; foreach (KeyValuePair<PropertyData, IPropertyMapper> property in _delegate.Properties) { if (data[property.Key.Name] != null || !(property.Value is SinglePropertyMapper)) { allNullAndSingle = false; break; } } // And we don't have to set anything on the object - the default value is null if (!allNullAndSingle) { try { //ORIG: Object subObj = ReflectHelper.getDefaultConstructor( // Thread.currentThread().getContextClassLoader().loadClass(componentClassName)).newInstance(); //setter.set(obj, subObj, null); object subObj = Activator.CreateInstance(Toolz.ResolveDotnetType(componentClassName)); propInfo.SetValue(obj, subObj, null); _delegate.MapToEntityFromMap(verCfg, subObj, data, primaryKey, versionsReader, revision); } catch (Exception e) { throw new AuditException(e); } } }
public void MapToEntityFromMap(AuditConfiguration verCfg, Object obj, IDictionary<String, Object> data, Object primaryKey, IAuditReaderImplementor versionsReader, long revision) { if (obj == null) { return; } Object entityId = delegat.MapToIdFromMap(DictionaryWrapper<String, Object>.Wrap((IDictionary)data[propertyData.Name])); Object value; if (entityId == null) { value = null; } else { if (versionsReader.FirstLevelCache.Contains(referencedEntityName, revision, entityId)) { value = versionsReader.FirstLevelCache[referencedEntityName, revision, entityId]; } else { //java: Class<?> entityClass = ReflectionTools.loadClass(referencedEntityName); value = versionsReader.SessionImplementor.Factory.GetEntityPersister(referencedEntityName).CreateProxy( entityId, new ToOneDelegateSessionImplementor(versionsReader, Toolz.ResolveDotnetType(referencedEntityName), entityId, revision, verCfg)); } } PropertyInfo propInfo = obj.GetType().GetProperty(propertyData.Name); propInfo.SetValue(obj, value, null); }
public AddWorkUnit(ISessionImplementor sessionImplementor, String entityName, AuditConfiguration verCfg, Object id, IEntityPersister entityPersister, Object[] state) : base(sessionImplementor, entityName, verCfg, id) { data = new Dictionary<String, Object>(); verCfg.EntCfg[EntityName].PropertyMapper.Map(sessionImplementor, data, entityPersister.PropertyNames, state, null); }
public DelWorkUnit(ISessionImplementor sessionImplementor, string entityName, AuditConfiguration verCfg, object id, IEntityPersister entityPersister, object[] state) : base(sessionImplementor, entityName, verCfg, id, RevisionType.Deleted) { this.state = state; propertyNames = entityPersister.PropertyNames; this.entityPersister = entityPersister; }
public ModWorkUnit(ISessionImplementor sessionImplementor, string entityName, AuditConfiguration verCfg, object id, IEntityPersister entityPersister, object[] newState, object[] oldState) : base(sessionImplementor, entityName, verCfg, id, RevisionType.Modified) { Data = new Dictionary<string, object>(); changes = verCfg.EntCfg[EntityName].PropertyMapper.Map(sessionImplementor, Data, entityPersister.PropertyNames, newState, oldState); }
public ModWorkUnit(ISessionImplementor sessionImplementor, String entityName, AuditConfiguration verCfg, Object id, IEntityPersister entityPersister, Object[] newState, Object[] oldState) : base(sessionImplementor, entityName, verCfg, id) { data = new Dictionary<String, Object>(); changes = verCfg.EntCfg[EntityName].PropertyMapper.Map(sessionImplementor, data, entityPersister.PropertyNames, newState, oldState); }
public EntitiesAtRevisionQuery(AuditConfiguration verCfg, IAuditReaderImplementor versionsReader, string entityName, long revision) : base(verCfg, versionsReader, entityName) { _revision = revision; }
public PersistentCollectionChangeWorkUnit(ISessionImplementor sessionImplementor, String entityName, AuditConfiguration verCfg, Object id, IList<PersistentCollectionChangeData> collectionChanges, String referencingPropertyName) : base(sessionImplementor, entityName, verCfg, id) { this.collectionChanges = collectionChanges; this.ReferencingPropertyName = referencingPropertyName; }
public RevisionsOfEntityQuery(AuditConfiguration verCfg, IAuditReaderImplementor versionsReader, System.Type cls, bool selectEntitiesOnly, bool selectDeletedEntities) : base(verCfg, versionsReader, cls) { this.selectEntitiesOnly = selectEntitiesOnly; this.selectDeletedEntities = selectDeletedEntities; }
public void AddToQuery(AuditConfiguration auditCfg, String entityName, QueryBuilder qb, Parameters parameters) { String propertyName = propertyNameGetter.Get(auditCfg); RelationDescription relatedEntity = CriteriaTools.GetRelatedEntity(auditCfg, entityName, propertyName); if (relatedEntity == null) { parameters.AddWhereWithParam(propertyName, "<>", null); } else { relatedEntity.IdMapper.AddIdEqualsToQuery(parameters, null, propertyName, false); } }
public RevisionsOfEntityQuery(AuditConfiguration verCfg, IAuditReaderImplementor versionsReader, string entityName, bool selectEntitiesOnly, bool selectDeletedEntities) : base(verCfg, versionsReader, entityName) { this.selectEntitiesOnly = selectEntitiesOnly; this.selectDeletedEntities = selectDeletedEntities; }
public ToOneDelegateSessionImplementor(IAuditReaderImplementor versionsReader, object entityId, long revision, AuditConfiguration verCfg) : base(versionsReader.SessionImplementor) { this.versionsReader = versionsReader; this.entityId = entityId; this.revision = revision; entCfg = verCfg.EntCfg; }
public void AddToQuery(AuditConfiguration verCfg, String entityName, QueryBuilder qb, Parameters parameters) { Parameters andParameters = parameters.AddSubParameters(Parameters.AND); if (criterions.Count == 0) { andParameters.AddWhere("1", false, "=", "1", false); } else { foreach (IAuditCriterion criterion in criterions) { criterion.AddToQuery(verCfg, entityName, qb, andParameters); } } }
private PersistentCollectionChangeWorkUnit(ISessionImplementor sessionImplementor, string entityName, AuditConfiguration verCfg, object id, IList<PersistentCollectionChangeData> collectionChanges, string referencingPropertyName) : base(sessionImplementor, entityName, verCfg, id, RevisionType.Modified) { this.collectionChanges = collectionChanges; this.referencingPropertyName = referencingPropertyName; }
public void AddToQuery(AuditConfiguration auditCfg, String entityName, QueryBuilder qb, Parameters parameters) { String propertyName = propertyNameGetter.Get(auditCfg); RelationDescription relatedEntity = CriteriaTools.GetRelatedEntity(auditCfg, entityName, propertyName); if (relatedEntity == null) { throw new AuditException("This criterion can only be used on a property that is " + "a relation to another property."); } else { relatedEntity.IdMapper.AddIdEqualsToQuery(parameters, id, propertyName, equals); } }
public PersistentCollectionChangeWorkUnit(ISessionImplementor sessionImplementor, String entityName, AuditConfiguration auditCfg, IPersistentCollection collection, CollectionEntry collectionEntry, Object snapshot, Object id, String referencingPropertyName) : base(sessionImplementor, entityName, auditCfg, new PersistentCollectionChangeWorkUnitId(id, collectionEntry.Role)) { this.ReferencingPropertyName = referencingPropertyName; collectionChanges = auditCfg.EntCfg[EntityName].PropertyMapper .MapCollectionChanges(referencingPropertyName, collection, snapshot, id); }
public static AuditConfiguration getFor(Cfg.Configuration cfg) { AuditConfiguration verCfg = null; if(cfgs.Keys.Contains(cfg)) verCfg = cfgs[cfg]; else{ verCfg = new AuditConfiguration(cfg); cfgs.Add(cfg, verCfg); cfg.BuildMappings(); } return verCfg; }
public ToOneDelegateSessionImplementor(IAuditReaderImplementor versionsReader, System.Type entityClass, Object entityId, long revision, AuditConfiguration verCfg) : base(versionsReader.SessionImplementor) { this.versionsReader = versionsReader; this.entityClass = entityClass; this.entityId = entityId; this.revision = revision; EntitiesConfigurations entCfg = verCfg.EntCfg; notVersionedEntityConfiguration = entCfg.GetNotVersionEntityConfiguration(entityClass.FullName); }
public void AddToQuery(AuditConfiguration auditCfg, string entityName, QueryBuilder qb, Parameters parameters) { var propertyName = propertyNameGetter.Get(auditCfg); var relatedEntity = CriteriaTools.GetRelatedEntity(auditCfg, entityName, propertyName); if (relatedEntity == null) { parameters.AddNullRestriction(propertyName, true); } else { relatedEntity.IdMapper.AddIdEqualsToQuery(parameters, null, propertyName, true); } }
public FakeBidirectionalRelationWorkUnit(ISessionImplementor sessionImplementor, String entityName, AuditConfiguration verCfg, Object id, String referencingPropertyName, Object owningEntity, RelationDescription rd, RevisionType revisionType, Object index, IAuditWorkUnit nestedWorkUnit) : base(sessionImplementor, entityName, verCfg, id) { this.nestedWorkUnit = nestedWorkUnit; // Adding the change for the relation. fakeRelationChanges = new Dictionary<String, FakeRelationChange>(); fakeRelationChanges.Add(referencingPropertyName, new FakeRelationChange(owningEntity, rd, revisionType, index)); }
protected AbstractAuditQuery(AuditConfiguration verCfg, IAuditReaderImplementor versionsReader, System.Type cls) { this.verCfg = verCfg; this.versionsReader = versionsReader; criterions = new List<IAuditCriterion>(); entityInstantiator = new EntityInstantiator(verCfg, versionsReader); entityName = cls.FullName; versionsEntityName = verCfg.AuditEntCfg.GetAuditEntityName(entityName); qb = new QueryBuilder(versionsEntityName, "e"); }
public static AuditConfiguration GetFor(Cfg.Configuration cfg) { if (!configurations.TryGetValue(cfg, out var verCfg)) { cfg.SetEnversProperty(ConfigurationKey.UniqueConfigurationName, Guid.NewGuid().ToString()); cfg.BuildMappings(); // force secondpass for mappings added by users if (!configurationMetadataProvider.TryGetValue(cfg, out var metas)) { metas = new AttributeConfiguration(); } verCfg = new AuditConfiguration(cfg, metas); configurations.Add(cfg, verCfg); } return(verCfg); }
public GlobalConfiguration(AuditConfiguration auditConfiguration, IDictionary <string, string> properties) { GenerateRevisionsForCollections = ConfigurationKey.RevisionOnCollectionChange.ToBool(properties); DoNotAuditOptimisticLockingField = ConfigurationKey.DoNotAuditOptimisticLockingField.ToBool(properties); StoreDataAtDelete = ConfigurationKey.StoreDataAtDelete.ToBool(properties); IsTrackEntitiesChangedInRevisionEnabled = ConfigurationKey.TrackEntitiesChangedInRevision.ToBool(properties); DefaultSchemaName = ConfigurationKey.DefaultSchema.ToString(properties); DefaultCatalogName = ConfigurationKey.DefaultCatalog.ToString(properties); CollectionMapperFactory = ConfigurationKey.CollectionMapperFactory.ToInstance <ICollectionMapperFactory>(properties); CorrelatedSubqueryOperator = "="; IsGlobalWithModifiedFlag = ConfigurationKey.GlobalWithModifiedFlag.ToBool(properties); ModifiedFlagSuffix = ConfigurationKey.ModifiedFlagSuffix.ToString(properties); PostInstantiationListener = ConfigurationKey.PostInstantiationListener.ToInstance <IPostInstantiationListener>(properties); AuditStrategy = ConfigurationKey.AuditStrategy.ToInstance <IAuditStrategy>(properties); AuditStrategy.Initialize(auditConfiguration); AllowIdentifierReuse = ConfigurationKey.AllowIdentifierReuse.ToBool(properties); }
public static AuditConfiguration getFor(Cfg.Configuration cfg) { AuditConfiguration verCfg = null; if (cfgs.Keys.Contains(cfg)) { verCfg = cfgs[cfg]; } else { verCfg = new AuditConfiguration(cfg); cfgs.Add(cfg, verCfg); cfg.BuildMappings(); } return(verCfg); }