Loading de.ugoe.cs.swe.T3Q/src/de/ugoe/cs/swe/T3Q/UsageAnalyzer.java +28 −2 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.HashMap; import java.util.HashSet; import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; Loading Loading @@ -97,7 +98,6 @@ public class UsageAnalyzer implements Callable<TTCN3Usage> { countDefinitions(module, output); } stopwatch.stop(); Loading @@ -111,10 +111,11 @@ public class UsageAnalyzer implements Callable<TTCN3Usage> { private void countDefinitions(TTCN3Module module, TTCN3Usage output) { System.out.println("Processing Definitions"); System.out.println("Counting Definitions"); List<ModuleDefinition> definitions = EcoreUtil2.getAllContentsOfType(module, ModuleDefinition.class); output.getOutput().put("TotalDef", definitions.size()); Set<Class<?>> toAnalyze = new HashSet<Class<?>>(); for (ModuleDefinition d : definitions) { String eClassName = d.getDef().eClass().getName(); if(output.getOutput().containsKey(eClassName)) { Loading @@ -122,10 +123,35 @@ public class UsageAnalyzer implements Callable<TTCN3Usage> { } else { output.getOutput().put(eClassName, 1); } toAnalyze.add(d.getDef().eClass().getInstanceClass()); } //How to generalize? Dynamic casting [d.getDef().eClass().getInstanceClass() c = (d.getDef().eClass().getInstanceClass()) d] doesn't seem to work //Perhaps some list of classes kept globally, easy to change and append? if(toAnalyze.contains(ConstDef.class)) { countConstants(module, output); } //if(...) ... System.out.println("Definitions done"); } private void countConstants(TTCN3Module module, TTCN3Usage output) { List<ConstDef> c =EcoreUtil2.getAllContentsOfType(module, ConstDef.class); if(c.size() > 0) { for(ConstDef constant : c) { String name = "Constant:" + constant.getType().getPre(); //Added "Constant:" to identifier for better readability of output if(output.getOutput().containsKey(name)) { output.getOutput().replace(name, output.getOutput().get(name) + 1); } else { output.getOutput().put(name, 1); } } } } @Override public TTCN3Usage call() throws Exception { Loading Loading
de.ugoe.cs.swe.T3Q/src/de/ugoe/cs/swe/T3Q/UsageAnalyzer.java +28 −2 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.HashMap; import java.util.HashSet; import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; Loading Loading @@ -97,7 +98,6 @@ public class UsageAnalyzer implements Callable<TTCN3Usage> { countDefinitions(module, output); } stopwatch.stop(); Loading @@ -111,10 +111,11 @@ public class UsageAnalyzer implements Callable<TTCN3Usage> { private void countDefinitions(TTCN3Module module, TTCN3Usage output) { System.out.println("Processing Definitions"); System.out.println("Counting Definitions"); List<ModuleDefinition> definitions = EcoreUtil2.getAllContentsOfType(module, ModuleDefinition.class); output.getOutput().put("TotalDef", definitions.size()); Set<Class<?>> toAnalyze = new HashSet<Class<?>>(); for (ModuleDefinition d : definitions) { String eClassName = d.getDef().eClass().getName(); if(output.getOutput().containsKey(eClassName)) { Loading @@ -122,10 +123,35 @@ public class UsageAnalyzer implements Callable<TTCN3Usage> { } else { output.getOutput().put(eClassName, 1); } toAnalyze.add(d.getDef().eClass().getInstanceClass()); } //How to generalize? Dynamic casting [d.getDef().eClass().getInstanceClass() c = (d.getDef().eClass().getInstanceClass()) d] doesn't seem to work //Perhaps some list of classes kept globally, easy to change and append? if(toAnalyze.contains(ConstDef.class)) { countConstants(module, output); } //if(...) ... System.out.println("Definitions done"); } private void countConstants(TTCN3Module module, TTCN3Usage output) { List<ConstDef> c =EcoreUtil2.getAllContentsOfType(module, ConstDef.class); if(c.size() > 0) { for(ConstDef constant : c) { String name = "Constant:" + constant.getType().getPre(); //Added "Constant:" to identifier for better readability of output if(output.getOutput().containsKey(name)) { output.getOutput().replace(name, output.getOutput().get(name) + 1); } else { output.getOutput().put(name, 1); } } } } @Override public TTCN3Usage call() throws Exception { Loading