aplcache

Details

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();