Exemple #1
0
 /// <summary>
 /// Creates a new log summary.
 /// </summary>
 /// <param name="log">The log to create a summary of.</param>
 /// <param name="defaultClassifier">The event classifier to be used.</param>
 /// <param name="classifiers">Classifiers.</param>
 /// <param name="classifiers">A collection of additional event classifiers to
 /// be covered by the created log info instance.</param>
 public XLogInfo(XLog log, IXEventClassifier defaultClassifier, List <IXEventClassifier> classifiers)
 {
     this.log = log;
     this.defaultClassifier = defaultClassifier;
     if (classifiers == null)
     {
         classifiers = new List <IXEventClassifier>(0);
     }
     this.eventClasses = new Dictionary <IXEventClassifier, XEventClasses>(classifiers.Count + 4);
     foreach (IXEventClassifier classifier in classifiers)
     {
         this.eventClasses.Add(classifier, new XEventClasses(classifier));
     }
     this.eventClasses.Add(this.defaultClassifier, new XEventClasses(this.defaultClassifier));
     this.eventClasses.Add(NAME_CLASSIFIER, new XEventClasses(NAME_CLASSIFIER));
     this.eventClasses.Add(RESOURCE_CLASSIFIER, new XEventClasses(RESOURCE_CLASSIFIER));
     this.eventClasses.Add(LIFECYCLE_TRANSITION_CLASSIFIER, new XEventClasses(LIFECYCLE_TRANSITION_CLASSIFIER));
     this.numberOfEvents     = 0;
     this.numberOfTraces     = 0;
     this.logBoundaries      = new XTimeBounds();
     this.traceBoundaries    = new Dictionary <IXTrace, IXTimeBounds>();
     this.logAttributeInfo   = new XAttributeInfo();
     this.traceAttributeInfo = new XAttributeInfo();
     this.eventAttributeInfo = new XAttributeInfo();
     this.metaAttributeInfo  = new XAttributeInfo();
     Setup();
 }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:OpenXesNet.model.XLog"/> class.
 /// </summary>
 /// <param name="attributes">The attribute map used to store this log's attributes.</param>
 /// <param name="initialCapacity">Initial capacity. If not specified, a default
 /// value of 0 is used.</param>
 public XLog(IXAttributeMap attributes, int initialCapacity = 0) : base(initialCapacity)
 {
     this.attributes            = attributes;
     this.extensions            = new HashSet <XExtension>();
     this.classifiers           = new List <IXEventClassifier>();
     this.globalEventAttributes = new List <XAttribute>();
     this.globalTraceAttributes = new List <XAttribute>();
     this.cachedInfo            = null;
     this.cachedClassifier      = null;
 }
Exemple #3
0
 /// <summary>
 /// Creates a new set of event classes, factory method.
 /// </summary>
 /// <returns>A set of event classes, as an instance of this class.</returns>
 /// <param name="classifier">The classifier to be used for event comparison.</param>
 /// <param name="log">The log, on which event classes should be imposed.</param>
 public static XEventClasses DeriveEventClasses(IXEventClassifier classifier, XLog log)
 {
     lock (Lock)
     {
         XEventClasses nClasses = new XEventClasses(classifier);
         nClasses.Register(log);
         nClasses.HarmonizeIndexes();
         return(nClasses);
     }
 }
Exemple #4
0
        /// <summary>
        /// Creates a new log info summary with a custom event classifier.
        /// </summary>
        /// <returns>The log info summary for this log.</returns>
        /// <param name="log">The event log to create an info summary for.</param>
        /// <param name="classifier">The event classifier to be used.</param>
        public static IXLogInfo CreateLogInfo(IXLog log, IXEventClassifier classifier)
        {
            IXLogInfo info = log.GetInfo(classifier);

            if (info == null)
            {
                info = XLogInfo.Create((XLog)log, classifier);

                log.SetInfo(classifier, info);
            }
            return(info);
        }
Exemple #5
0
 /// <summary>
 /// First call made when visiting a classifier.
 /// </summary>
 /// <param name="classifier">The classifier to visit.</param>
 /// <param name="log">The log containing the classifier.</param>
 public abstract void VisitClassifierPost(IXEventClassifier classifier, XLog log);
Exemple #6
0
 /// <summary>
 /// Creates a new log info summary with the custom event classifier.
 /// </summary>
 /// <returns>The event log to create an info summary for.</returns>
 /// <param name="log">The event log to create an info summary for.</param>
 /// <param name="defaultClassifier">The default event classifier to be used.</param>
 public static XLogInfo Create(XLog log, IXEventClassifier defaultClassifier)
 {
     return(Create(log, defaultClassifier, null));
 }
Exemple #7
0
 public XEventClasses GetEventClasses(IXEventClassifier classifier)
 {
     return(this.eventClasses[classifier]);
 }
Exemple #8
0
 /// <summary>
 /// Creates a new log info summary with a collection of custom  event classifiers.
 /// </summary>
 /// <returns>The event log to create an info summary for.</returns>
 /// <param name="log">The event log to create an info summary for.</param>
 /// <param name="defaultClassifier">The default event classifier to be used.</param>
 /// <param name="classifiers">A collection of additional event classifiers to
 /// be covered by the created log info instance.</param>
 public static XLogInfo Create(XLog log, IXEventClassifier defaultClassifier,
                               List <IXEventClassifier> classifiers)
 {
     return(new XLogInfo(log, defaultClassifier, classifiers));
 }
Exemple #9
0
 public void SetInfo(IXEventClassifier classifier, IXLogInfo info)
 {
     this.cachedClassifier = classifier;
     this.cachedInfo       = info;
 }
Exemple #10
0
 public IXLogInfo GetInfo(IXEventClassifier classifier)
 {
     return(classifier.Equals(this.cachedClassifier) ? this.cachedInfo : null);
 }
Exemple #11
0
 /// <summary>
 /// Creates a new instance, i.e. an empty set of event classes.
 /// </summary>
 /// <param name="classifier">The classifier used for event comparison.</param>
 public XEventClasses(IXEventClassifier classifier)
 {
     this.classifier = classifier;
     this.classMap   = new Dictionary <string, XEventClass>();
 }