Ejemplo n.º 1
0
        public AuditSyncManager(IRevisionInfoGenerator revisionInfoGenerator)
        {
            //ORIG: auditSyncs = new ConcurrentHashMap<ITransaction, AuditSync>(); TODO Simon see if it's OK
            auditSyncs = new Dictionary <ITransaction, AuditSync>();

            this.revisionInfoGenerator = revisionInfoGenerator;
        }
        public AuditSyncManager(IRevisionInfoGenerator revisionInfoGenerator)
        {
            //ORIG: auditSyncs = new ConcurrentHashMap<ITransaction, AuditSync>(); TODO Simon see if it's OK
            auditSyncs = new Dictionary<ITransaction, AuditSync>();

            this.revisionInfoGenerator = revisionInfoGenerator;
        }
Ejemplo n.º 3
0
        public AuditProcess(IRevisionInfoGenerator revisionInfoGenerator, ISessionImplementor session)
        {
            this.revisionInfoGenerator = revisionInfoGenerator;
            this.session = session;

            workUnits            = new LinkedList <IAuditWorkUnit>();
            undoQueue            = new Queue <IAuditWorkUnit>();
            usedIds              = new Dictionary <Tuple <string, object>, IAuditWorkUnit>();
            entityChangeNotifier = new EntityChangeNotifier(revisionInfoGenerator, session);
        }
Ejemplo n.º 4
0
        public AuditProcess(IRevisionInfoGenerator revisionInfoGenerator, ISessionImplementor session)
        {
            this.revisionInfoGenerator = revisionInfoGenerator;
            this.session = session;

            workUnits = new LinkedList<IAuditWorkUnit>();
            undoQueue = new Queue<IAuditWorkUnit>();
            usedIds = new Dictionary<Pair<string, object>, IAuditWorkUnit>();
            entityChangeNotifier = new EntityChangeNotifier(revisionInfoGenerator, session);
        }
Ejemplo n.º 5
0
        public AuditSync(AuditSyncManager manager, IEventSource session, IRevisionInfoGenerator revisionInfoGenerator) {
            this.manager = manager;
            this.session = session;
            this.revisionInfoGenerator = revisionInfoGenerator;

            transaction = session.Transaction;
            workUnits = new LinkedList<IAuditWorkUnit>();
            undoQueue = new Queue<IAuditWorkUnit>();
            usedIds = new Dictionary<Pair<String, Object>, IAuditWorkUnit>();
        }
Ejemplo n.º 6
0
        public AuditSync(AuditSyncManager manager, IEventSource session, IRevisionInfoGenerator revisionInfoGenerator)
        {
            this.manager = manager;
            this.session = session;
            this.revisionInfoGenerator = revisionInfoGenerator;

            transaction = session.Transaction;
            workUnits   = new LinkedList <IAuditWorkUnit>();
            undoQueue   = new Queue <IAuditWorkUnit>();
            usedIds     = new Dictionary <Pair <String, Object>, IAuditWorkUnit>();
        }
 public RevisionInfoConfigurationResult(IRevisionInfoGenerator revisionInfoGenerator,
                                        XmlDocument revisionInfoXmlMapping,
                                        RevisionInfoQueryCreator revisionInfoQueryCreator,
                                        XmlElement revisionInfoRelationMapping,
                                        RevisionInfoNumberReader revisionInfoNumberReader,
                                        String revisionInfoEntityName)
 {
     this.RevisionInfoGenerator       = revisionInfoGenerator;
     this.RevisionInfoXmlMapping      = revisionInfoXmlMapping;
     this.RevisionInfoQueryCreator    = revisionInfoQueryCreator;
     this.RevisionInfoRelationMapping = revisionInfoRelationMapping;
     this.RevisionInfoNumberReader    = revisionInfoNumberReader;
     this.RevisionInfoEntityName      = revisionInfoEntityName;
 }
Ejemplo n.º 8
0
 public RevisionInfoConfigurationResult(IRevisionInfoGenerator revisionInfoGenerator,
                                        XDocument revisionInfoXmlMapping,
                                        RevisionInfoQueryCreator revisionInfoQueryCreator,
                                        XElement revisionInfoRelationMapping,
                                        RevisionInfoNumberReader revisionInfoNumberReader,
                                        ModifiedEntityNamesReader modifiedEntityNamesReader,
                                        string revisionInfoEntityName,
                                        System.Type revisionInfoClass,
                                        PropertyData revisionInfoTimestampData)
 {
     RevisionInfoGenerator       = revisionInfoGenerator;
     RevisionInfoXmlMapping      = revisionInfoXmlMapping;
     RevisionInfoQueryCreator    = revisionInfoQueryCreator;
     RevisionInfoRelationMapping = revisionInfoRelationMapping;
     RevisionInfoNumberReader    = revisionInfoNumberReader;
     ModifiedEntityNamesReader   = modifiedEntityNamesReader;
     RevisionInfoEntityName      = revisionInfoEntityName;
     RevisionInfoClass           = revisionInfoClass;
     RevisionInfoTimestampData   = revisionInfoTimestampData;
 }
 public AuditProcessManager(IRevisionInfoGenerator revisionInfoGenerator)
 {
     _auditProcesses        = new ConcurrentDictionary <ITransaction, AuditProcess>();
     _revisionInfoGenerator = revisionInfoGenerator;
 }
Ejemplo n.º 10
0
 public EntityChangeNotifier(IRevisionInfoGenerator revisionInfoGenerator, ISessionImplementor sessionImplementor)
 {
     _revisionInfoGenerator = revisionInfoGenerator;
     _sessionImplementor    = sessionImplementor;
 }
        //@SuppressWarnings({"unchecked"})
        public RevisionInfoConfigurationResult configure(NHibernate.Cfg.Configuration cfg)
        {
            ICollection <PersistentClass> classes = cfg.ClassMappings;
            bool revisionEntityFound = false;
            IRevisionInfoGenerator revisionInfoGenerator = null;

            System.Type revisionInfoClass = null;

            foreach (PersistentClass pc in classes)
            {
                System.Type clazz;
                try {
                    clazz = System.Type.GetType(pc.ClassName, true);
                } catch (System.Exception e) {
                    throw new MappingException(e);
                }

                RevisionEntityAttribute revisionEntity = (RevisionEntityAttribute)Attribute.GetCustomAttribute(clazz, typeof(RevisionEntityAttribute));
                if (revisionEntity != null)
                {
                    if (revisionEntityFound)
                    {
                        throw new MappingException("Only one entity may be decorated with [RevisionEntity]!");
                    }

                    // Checking if custom revision entity isn't audited
                    if (Attribute.GetCustomAttribute(clazz, typeof(AuditedAttribute)) != null)
                    {
                        throw new MappingException("An entity decorated with [RevisionEntity] cannot be audited!");
                    }

                    revisionEntityFound = true;

                    bool revisionNumberFound    = false;
                    bool revisionTimestampFound = false;

                    searchForRevisionInfoCfg(clazz, ref revisionNumberFound, ref revisionTimestampFound);

                    if (!revisionNumberFound)
                    {
                        throw new MappingException("An entity decorated with [RevisionEntity] must have a field decorated " +
                                                   "with [RevisionNumber]!");
                    }

                    if (!revisionTimestampFound)
                    {
                        throw new MappingException("An entity decorated with [RevisionEntity] must have a field decorated " +
                                                   "with [RevisionTimestamp]!");
                    }

                    revisionInfoEntityName = pc.EntityName;

                    revisionInfoClass         = pc.MappedClass;
                    revisionInfoTimestampType = pc.GetProperty(revisionInfoTimestampData.Name).Type;
                    revisionInfoGenerator     = new DefaultRevisionInfoGenerator(revisionInfoEntityName, revisionInfoClass,
                                                                                 /*revisionEntity.value, */ revisionInfoTimestampData /*, isTimestampAsDate()*/);
                }
            }

            // In case of a custom revision info generator, the mapping will be null.
            XmlDocument revisionInfoXmlMapping = null;

            if (revisionInfoGenerator == null)
            {
                revisionInfoClass     = typeof(DefaultRevisionEntity);
                revisionInfoGenerator = new DefaultRevisionInfoGenerator(revisionInfoEntityName, revisionInfoClass,
                                                                         revisionInfoTimestampData);
                revisionInfoXmlMapping = generateDefaultRevisionInfoXmlMapping();
            }

            return(new RevisionInfoConfigurationResult(
                       revisionInfoGenerator, revisionInfoXmlMapping,
                       new RevisionInfoQueryCreator(revisionInfoEntityName, revisionInfoIdData.Name,
                                                    revisionInfoTimestampData.Name),
                       generateRevisionInfoRelationMapping(),
                       new RevisionInfoNumberReader(revisionInfoClass, revisionInfoIdData), revisionInfoEntityName));
        }
Ejemplo n.º 12
0
 public AuditProcessManager(IRevisionInfoGenerator revisionInfoGenerator)
 {
     _auditProcesses        = new ThreadSafeDictionary <ITransaction, AuditProcess>(new Dictionary <ITransaction, AuditProcess>());
     _revisionInfoGenerator = revisionInfoGenerator;
 }
 public RevisionInfoConfigurationResult(IRevisionInfoGenerator revisionInfoGenerator,
     XmlDocument revisionInfoXmlMapping,
     RevisionInfoQueryCreator revisionInfoQueryCreator,
     XmlElement revisionInfoRelationMapping,
     RevisionInfoNumberReader revisionInfoNumberReader,
     String revisionInfoEntityName)
 {
     this.RevisionInfoGenerator = revisionInfoGenerator;
     this.RevisionInfoXmlMapping = revisionInfoXmlMapping;
     this.RevisionInfoQueryCreator = revisionInfoQueryCreator;
     this.RevisionInfoRelationMapping = revisionInfoRelationMapping;
     this.RevisionInfoNumberReader = revisionInfoNumberReader;
     this.RevisionInfoEntityName = revisionInfoEntityName;
 }
Ejemplo n.º 14
0
 public AuditProcessManager(IRevisionInfoGenerator revisionInfoGenerator)
 {
     auditProcesses = new ThreadSafeDictionary<ITransaction, AuditProcess>(new Dictionary<ITransaction, AuditProcess>());
     this.revisionInfoGenerator = revisionInfoGenerator;
 }