Skip to content
Snippets Groups Projects
Commit e54e539d authored by Andrea Burattin's avatar Andrea Burattin
Browse files

Rearranged some classes

parent d4ea9a0e
Branches
Tags
No related merge requests found
Showing
with 98 additions and 152 deletions
package rx.beamline.filters;
package beamline.filters;
import org.deckfour.xes.extension.std.XConceptExtension;
import org.deckfour.xes.model.XAttributeLiteral;
......
package rx.beamline.filters;
package beamline.filters;
import java.util.Arrays;
import java.util.HashSet;
......
package rx.beamline.filters;
package beamline.filters;
import java.util.Arrays;
import java.util.HashSet;
......
package rx.beamline.filters;
package beamline.filters;
import org.deckfour.xes.extension.std.XConceptExtension;
import org.deckfour.xes.model.XAttributeLiteral;
......
package rx.beamline.filters;
package beamline.filters;
import java.util.Arrays;
import java.util.HashSet;
......
package rx.beamline.filters;
package beamline.filters;
import java.util.Arrays;
import java.util.HashSet;
......
package rx.beamline.miners;
package beamline.miners;
import java.util.HashMap;
import java.util.HashSet;
......@@ -10,7 +10,7 @@ import org.apache.commons.lang3.tuple.Pair;
import org.deckfour.xes.extension.std.XConceptExtension;
import org.deckfour.xes.model.XTrace;
import discovery.beamline.miners.basic.ProcessMap;
import beamline.models.algorithms.StreamMiningAlgorithm;
public class DiscoveryMiner extends StreamMiningAlgorithm<XTrace, ProcessMap> {
......@@ -22,6 +22,10 @@ public class DiscoveryMiner extends StreamMiningAlgorithm<XTrace, ProcessMap> {
private double minDependency = 1d;
private int modelRefreshRate = 0;
public DiscoveryMiner() {
}
public void setMinDependency(double minDependency) {
this.minDependency = minDependency;
}
......
package discovery.beamline.miners.basic;
package beamline.miners;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import beamline.graphviz.Dot;
import beamline.models.responses.GraphvizResponse;
import discovery.beamline.view.graph.PMDotModel;
import beamline.view.graph.PMDotModel;
import java.util.HashMap;
import java.util.HashSet;
......@@ -19,7 +19,7 @@ public class ProcessMap implements GraphvizResponse {
@Override
public Dot generateDot() {
return new PMDotModel(this, discovery.beamline.view.graph.ColorPalette.Colors.BLUE);
return new PMDotModel(this, beamline.view.graph.ColorPalette.Colors.BLUE);
}
public ProcessMap() {
......
package beamline.models.algorithms;
public interface HookEventProcessing {
public void trigger();
}
package beamline.models.algorithms;
import java.util.Iterator;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.functions.Consumer;
import beamline.models.responses.Response;
import beamline.models.streams.ObservableStream;
public abstract class StreamMiningAlgorithm<T, K extends Response> implements ObservableStream<K> {
public abstract class StreamMiningAlgorithm<T, K> implements Consumer<T> {
private int processedEvents = 0;
private K latestResponse;
private HookEventProcessing onBeforeEvent = null;
private HookEventProcessing onAfterEvent = null;
protected abstract K ingest(T event);
public abstract K ingest(T event);
public K process(T event) {
public void process(T event) {
this.processedEvents++;
latestResponse = ingest(event);
return latestResponse;
}
public int getProcessedEvents() {
......@@ -26,16 +25,27 @@ public abstract class StreamMiningAlgorithm<T, K extends Response> implements Ob
return latestResponse;
}
public void setOnBeforeEvent(HookEventProcessing onBeforeEvent) {
this.onBeforeEvent = onBeforeEvent;
}
public void setOnAfterEvent(HookEventProcessing onAfterEvent) {
this.onAfterEvent = onAfterEvent;
}
protected K setLatestResponse(K latestResponse) {
this.latestResponse = latestResponse;
return latestResponse;
}
@Override
public void prepare() throws Exception { }
@Override
public Iterator<K> iterator() {
return null;
public void accept(@NonNull T t) throws Throwable {
if (onBeforeEvent != null) {
onBeforeEvent.trigger();
}
process(t);
if (onAfterEvent != null) {
onAfterEvent.trigger();
}
}
}
package beamline.models.filters;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.stream.Stream;
import org.deckfour.xes.model.XTrace;
public class EventNameFilterKeepOnly extends XesFilter {
private Set<String> activityNamesToKeep;
public EventNameFilterKeepOnly(String ...activityNamesToKeep) {
this.activityNamesToKeep = new HashSet<String>(Arrays.asList(activityNamesToKeep));
}
@Override
public Iterator<XTrace> iterator() {
return null;
}
@Override
public Stream<XTrace> stream() {
// TODO Auto-generated method stub
return null;
}
}
package beamline.models.filters;
import beamline.models.streams.XesSource;
public abstract class XesFilter implements XesSource {
@Override
public void prepare() throws Exception { }
}
package rx.beamline.sources;
package beamline.sources;
import java.util.Date;
import java.util.UUID;
......
package rx.beamline.sources;
package beamline.sources;
import io.reactivex.rxjava3.core.Observable;
......
package rx.beamline.sources;
package beamline.sources;
import java.io.File;
import java.util.Collections;
......
package rx.beamline.sources;
package beamline.sources;
import org.deckfour.xes.model.XTrace;
......
......@@ -2,106 +2,71 @@ package beamline.tester;
import java.io.File;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import java.util.HashSet;
import java.util.Set;
import org.deckfour.xes.extension.std.XConceptExtension;
import org.deckfour.xes.extension.std.XTimeExtension;
import org.deckfour.xes.in.XParser;
import org.deckfour.xes.in.XesXmlParser;
import org.deckfour.xes.model.XEvent;
import org.deckfour.xes.model.XLog;
import org.deckfour.xes.model.XTrace;
import com.google.common.collect.Iterators;
import beamline.models.responses.GraphvizResponse;
import beamline.models.streams.XesMqttSource;
import beamline.models.streams.XesSource;
import beamline.models.streams.ObservableStream;
import beamline.models.streams.XesStreamSource;
import discovery.beamline.miners.basic.DiscoveryMiner;
import beamline.filters.ExcludeActivitiesFilter;
import beamline.filters.RetainActivitiesFilter;
import beamline.miners.DiscoveryMiner;
import beamline.miners.ProcessMap;
import beamline.models.algorithms.HookEventProcessing;
import beamline.models.algorithms.StreamMiningAlgorithm;
import beamline.sources.XesLogSource;
import beamline.sources.XesSource;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.ObservableEmitter;
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.functions.Consumer;
import io.reactivex.rxjava3.functions.Function;
import io.reactivex.rxjava3.functions.Predicate;
import jdk.jshell.execution.StreamingExecutionControl;
public class Tester {
public static void main(String[] args) throws Exception {
System.out.println("start");
System.out.println("Started");
XesSource source;
source = new XesStreamSource("C:\\Users\\andbur\\Desktop\\input-small.xes");
// source = new XesMqttSource("tcp://broker.hivemq.com:1883", "pmcep", "test");
XParser p = new XesXmlParser();
XLog l = p.parse(new File("C:\\Users\\andbur\\Desktop\\input.xes")).get(0);
XesSource source = new XesLogSource(l);
// XesSource source = new MQTTXESSource(broker, topic, process);
source.prepare();
int refreshRate = 1;
DiscoveryMiner discoveryAlgorithm = new DiscoveryMiner();
discoveryAlgorithm.setMinDependency(0.3);
discoveryAlgorithm.setModelRefreshRate(refreshRate);
Stream<String> s = Arrays.asList("1234", "12", "123").stream();
s
.map(new Function<String, Integer>() {
@Override
public Integer apply(String t) {
return t.length();
}
})
.forEach(System.out::println);
// Stream<XTrace> s = source.stream();
//
// s
// .filter(new Predicate<XTrace>() {
DiscoveryMiner miner = new DiscoveryMiner();
miner.setMinDependency(0.3);
miner.setModelRefreshRate(1);
Observable<XTrace> obs = source.getObservable();
obs
// .filter(new RetainActivitiesFilter("A", "B", "C", "dummy-retain"))
// .filter(new ExcludeActivitiesFilter("A", "dummy-exclude"))
// .map(new DirectSuccessionMapper())
// .combine(new SlidingWindow(1000))
// .map(new Miner(1, 0.5))
.subscribe(miner);
// .subscribe(new Consumer<XTrace>() {
// @Override
// public boolean test(XTrace t) {
// return "A".equals(XConceptExtension.instance().extractName(t.get(0))) ||
// "B".equals(XConceptExtension.instance().extractName(t.get(0)));
// }
// })
// .filter(new Predicate<XTrace>() {
// @Override
// public boolean test(XTrace t) {
// return "c1".equals(XConceptExtension.instance().extractName(t));
// }
// })
// .limit(2)
// .map(new Function<XTrace, String>() {
// @Override
// public String apply(XTrace t) {
// return XConceptExtension.instance().extractName(t.get(0));
// }
// })
// .forEach(System.out::println);
// .
// .forEach(new Consumer<XTrace>() {
// @Override
// public void accept(XTrace t) {
// public void accept(@NonNull XTrace t) throws Throwable {
// System.out.println(
// XConceptExtension.instance().extractName(t) + " - " +
// XConceptExtension.instance().extractName(t.get(0)) + " - " +
// XTimeExtension.instance().extractTimestamp(t.get(0)));
//// discoveryAlgorithm.process(t);
// XTimeExtension.instance().extractTimestamp(t.get(0))
// );
// }
// });
// for(XTrace t : (Iterable<XTrace>) s::iterator) {
// System.out.println(XConceptExtension.instance().extractName(t) + " - " +
// XConceptExtension.instance().extractName(t.get(0)) + " - " +
// XTimeExtension.instance().extractTimestamp(t.get(0)));
// discoveryAlgorithm.process(eventWrapper);
// GraphvizResponse response = (GraphvizResponse) discoveryAlgorithm.getLatestResponse();
// if (discoveryAlgorithm.getProcessedEvents() % refreshRate == 0) {
//// response.generateDot().exportToSvg(new File("C:\\Users\\andbur\\Desktop\\output-" + discoveryAlgorithm.getProcessedEvents() + ".svg"));
// System.out.println("Processed " + discoveryAlgorithm.getProcessedEvents() + " events, the map has " + response.generateDot().getEdges().size() + " edges");
// }
// }
// System.out.println("Processed " + discoveryAlgorithm.getProcessedEvents() + " events, the map has " + discoveryAlgorithm.getLatestResponse().generateDot().getEdges().size() + " edges");
miner.getLatestResponse().generateDot().exportToSvg(new File("C:\\Users\\andbur\\Desktop\\output.svg"));
System.out.println("Done");
System.out.println("done");
}
}
package discovery.beamline.view.graph;
package beamline.view.graph;
import java.awt.Color;
......
package discovery.beamline.view.graph;
package beamline.view.graph;
import beamline.graphviz.DotEdge;
import beamline.graphviz.DotNode;
......
package discovery.beamline.view.graph;
package beamline.view.graph;
import beamline.graphviz.DotNode;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment