diff --git a/src/main/java/br/ufrgs/inf/prosoft/approachescomparison/adapter/Main.java b/src/main/java/br/ufrgs/inf/prosoft/approachescomparison/adapter/Main.java
index 461236a..d0863d8 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/approachescomparison/adapter/Main.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/approachescomparison/adapter/Main.java
@@ -8,9 +8,13 @@ package br.ufrgs.inf.prosoft.approachescomparison.adapter;
import br.ufrgs.inf.prosoft.adaptivecaching.analysis.decision.flowchart.FlowchartWorkFlow;
import br.ufrgs.inf.prosoft.adaptivecaching.monitoring.application.metadata.Method;
import br.ufrgs.inf.prosoft.trace.Trace;
+import br.ufrgs.inf.prosoft.trace.reader.Mode;
import java.util.List;
+import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
*
@@ -24,12 +28,37 @@ public class Main {
System.setProperty("java.util.logging.SimpleFormatter.format", "[%1$tF %1$tT+%1$tL] [%4$-7s] [APLCache] %5$s %n");
if (args.length < 1) {
- System.err.println("<TracePath>");
+ System.err.println("--trace=<TracePath>");
+ System.err.println("--trace=<TracePath> [--mode=<complete|hashed|partial>]");
System.exit(1);
}
- String path = args[0];
+
+ Map<String, String> arguments = Stream.of(args).map(arg -> {
+ arg = arg.replaceFirst("--", "");
+ String[] split = arg.split("=");
+ if (split.length < 2) {
+ return new String[]{"", ""};
+ }
+ return split;
+ }).collect(Collectors.toMap(array -> {
+ return array[0];
+ }, array -> {
+ return array[1];
+ }));
+
+ String tracePath = arguments.get("trace");
+ if (tracePath == null) {
+ System.err.println("<TracePath> is required");
+ System.exit(1);
+ }
+ String mode = arguments.get("mode");
+ if (mode == null) {
+ mode = "complete";
+ LOGGER.log(Level.INFO, "Using default mode: {0}", mode);
+ }
+
LOGGER.log(Level.INFO, "Reading traces");
- List<Trace> traces = TraceReader.parseFile(path);
+ List<Trace> traces = TraceReader.parseFile(tracePath, Mode.valueOf(mode.toUpperCase()));
LOGGER.log(Level.INFO, "Grouping {0} traces by methods", traces.size());
List<Method> methods = TraceReader.groupByMethods(traces);
FlowchartWorkFlow flowchartWorkFlow = new FlowchartWorkFlow();