diff --git a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java index ecee6adeec7dca2f00a04d431ac34bf2de1ef978..d3a410a872e61cc06896288cb9e865a50b0fb689 100644 --- a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java +++ b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java @@ -167,7 +167,7 @@ public class DirectedGraphTranslator extends JApplet { private HashMap<Integer, List<String>> detailsOfMinMaxRow = new HashMap<Integer, List<String>>(); private HashMap<Integer, List<SimulationTransaction>> dataBydelayedTasksOfMinMAx = new HashMap<Integer, List<SimulationTransaction>>(); - private final JFrame frame = new JFrame("The Sys-ML Model As Directed Graph"); + private final JFrame frame = new JFrame("The SysML Model As Directed Graph"); private List<Integer> times1 = new ArrayList<Integer>(); private List<Integer> times2 = new ArrayList<Integer>(); @@ -234,6 +234,31 @@ public class DirectedGraphTranslator extends JApplet { private List<SimulationTransaction> offPath = new ArrayList<SimulationTransaction>(); private List<SimulationTransaction> offPathDelay = new ArrayList<SimulationTransaction>(); + private static final String selectEventparam = "SelectEvent params:"; + private static final String selectEvent = "SelectEvent"; + private static final String transactions = "Transactions"; + private static final String mandatory = "Mandatory"; + private static final String operatorLabel = "operator"; + private static final String startTimeLabel = "starttime"; + private static final String endTimeLabel = "endtime"; + private static final String lengthLabel = "length"; + private static final String noContentionLabel = "NoContention"; + private static final String contentionLabel = "Contention"; + private static final String idLabel = "id"; + private static final String latencyTableLabel = "LatencyTable"; + private static final String latencyLabel = "Latency"; + private static final String rowLabel = "Row"; + private static final String minLabel = "Min"; + private static final String maxLabel = "Max"; + private static final String op1 = "op1"; + private static final String op2 = "op2"; + private static final String stLAbel = "st"; + private static final String waitLabel = "Wait"; + private static final String waitReqLabel = "Wait reqChannel_"; + private static final String getReqArgLabel = "getReqArg"; + private static final String waitSt = "Wait: "; + private static final String waitEvent = "wait event: "; + @SuppressWarnings("deprecation") public DirectedGraphTranslator(JFrameLatencyDetailedAnalysis jFrameLatencyDetailedAnalysis, JFrameCompareLatencyDetail jframeCompareLatencyDetail, TMLMapping<TGComponent> tmap1, List<TMLComponentDesignPanel> cpanels1, int i) { @@ -335,11 +360,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.vertexSet().contains(getvertex(ch.getName()))) { vertex v2 = vertex(ch.getName(), ch.getID()); g.addVertex(v2); - updatemainBar("v"); + updateMainBar(); // gVertecies.add(vertex(ch.getName())); getvertex(ch.getName()).setType(vertex.TYPE_CHANNEL); getvertex(ch.getName()).setTaintFixedNumber(0); - updatemainBar(ch.getName()); + updateMainBar(); } @@ -406,11 +431,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(ChannelName))) { g.addVertex(v); - updatemainBar("v"); + updateMainBar(); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); - updatemainBar("ChannelName"); + updateMainBar(); } @@ -435,13 +460,13 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(ChannelName))) { g.addVertex(v); - updatemainBar("v"); + updateMainBar(); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); - updatemainBar("ChannelName"); + updateMainBar(); } @@ -466,11 +491,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updatemainBar("v"); + updateMainBar(); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); - updatemainBar("ChannelName"); + updateMainBar(); } @@ -497,7 +522,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updatemainBar("getMemories"); + updateMainBar(); } @@ -545,7 +570,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updatemainBar("getHwBridge"); + updateMainBar(); } @@ -569,7 +594,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updatemainBar("getBUSs"); + updateMainBar(); } @@ -858,7 +883,7 @@ public class DirectedGraphTranslator extends JApplet { } - private void updatemainBar(String string) { + private void updateMainBar() { nbOfNodes++; @@ -928,11 +953,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.vertexSet().contains(getvertex(key))) { g.addVertex(vertex(key, keyID)); - updatemainBar(key); + updateMainBar(); } if (!g.vertexSet().contains(getvertex(taskName))) { g.addVertex(vertex(taskName, taskID)); - updatemainBar(taskName); + updateMainBar(); } g.addEdge(getvertex(key), getvertex(taskName)); @@ -954,7 +979,7 @@ public class DirectedGraphTranslator extends JApplet { if (currentElement.getName().equals("Stop after infinite loop")) { opCount++; - updatemainBar("v"); + updateMainBar(); if (opCount <= activity.nElements()) { if (currentElement.getNexts().size() == 1) { @@ -974,7 +999,7 @@ public class DirectedGraphTranslator extends JApplet { } else if (currentElement.getName().equals("startOfFork") || currentElement.getName().equals("junctionOfFork") || currentElement.getName().equals("startOfJoin") || currentElement.getName().equals("junctionOfJoin")) { opCount++; - updatemainBar("v"); + updateMainBar(); currentElement = currentElement.getNexts().firstElement(); continue; @@ -984,7 +1009,7 @@ public class DirectedGraphTranslator extends JApplet { int id = ((TMLReadChannel) (currentElement)).getChannel(0).getID(); if (!g.containsVertex(getvertex(name))) { g.addVertex(vertex(name, id)); - updatemainBar("v"); + updateMainBar(); } @@ -1006,7 +1031,7 @@ public class DirectedGraphTranslator extends JApplet { } opCount++; - updatemainBar("v"); + updateMainBar(); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1019,7 +1044,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = getvertex(vName); if (!g.containsVertex(v)) { g.addVertex(vertex(vName, vid)); - updatemainBar("v"); + updateMainBar(); } @@ -1041,7 +1066,7 @@ public class DirectedGraphTranslator extends JApplet { // g.addEdge(getvertex(taskName),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName())); opCount++; - updatemainBar("v"); + updateMainBar(); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1049,7 +1074,7 @@ public class DirectedGraphTranslator extends JApplet { } else if (currentElement.getName().equals("stopOfFork") || currentElement.getName().equals("stop2OfFork") || currentElement.getName().equals("stopOfJoin")) { opCount++; - updatemainBar("v"); + updateMainBar(); // currentElement = currentElement.getNexts().firstElement(); continue; } else if (taskName.startsWith("JOINTASK_S_") && currentElement.getName().startsWith("ReadOfJoin")) { @@ -1059,7 +1084,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(vName))) { g.addVertex(vertex(vName, vid)); - updatemainBar("v"); + updateMainBar(); } @@ -1081,7 +1106,7 @@ public class DirectedGraphTranslator extends JApplet { // g.addEdge(getvertex(task.getName()),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName())); opCount++; - updatemainBar("v"); + updateMainBar(); currentElement = currentElement.getNexts().firstElement(); @@ -1093,7 +1118,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(vName))) { g.addVertex(vertex(vName, vid)); - updatemainBar("v"); + updateMainBar(); } @@ -1115,7 +1140,7 @@ public class DirectedGraphTranslator extends JApplet { } opCount++; - updatemainBar("v"); + updateMainBar(); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1128,7 +1153,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = getvertex(vName); if (!g.containsVertex(v)) { g.addVertex(vertex(vName, vid)); - updatemainBar("v"); + updateMainBar(); } @@ -1150,7 +1175,7 @@ public class DirectedGraphTranslator extends JApplet { // g.addEdge(getvertex(taskName),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName())); opCount++; - updatemainBar("v"); + updateMainBar(); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1161,7 +1186,7 @@ public class DirectedGraphTranslator extends JApplet { int id = ((TMLWaitEvent) (currentElement)).getEvent().getID(); if (!g.containsVertex(getvertex(name))) { g.addVertex(vertex(name, id)); - updatemainBar("v"); + updateMainBar(); } @@ -1183,7 +1208,7 @@ public class DirectedGraphTranslator extends JApplet { } opCount++; - updatemainBar("v"); + updateMainBar(); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1306,10 +1331,12 @@ public class DirectedGraphTranslator extends JApplet { String[] val = cond.split("<="); String loopValue = val[2].toString(); + + int loopVal = Integer.valueOf(loopValue); if ((loopValue != null) && (loopValue.length() > 0)) { if ((loopValue.matches("\\d*"))) { - getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); + getvertex(eventName).setTaintFixedNumber(loopVal); } else { for (TMLAttribute att : taskAc.getAttributes()) { @@ -1319,7 +1346,7 @@ public class DirectedGraphTranslator extends JApplet { } - getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); + getvertex(eventName).setTaintFixedNumber(loopVal); } } @@ -1329,10 +1356,12 @@ public class DirectedGraphTranslator extends JApplet { String[] val = cond.split("<"); String loopValue = val[1].toString(); + int loopVal = Integer.valueOf(loopValue); + if ((loopValue != null) && (loopValue.length() > 0)) { if ((loopValue.matches("\\d*"))) { - getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); + getvertex(eventName).setTaintFixedNumber(loopVal); } else { for (TMLAttribute att : taskAc.getAttributes()) { @@ -1342,7 +1371,7 @@ public class DirectedGraphTranslator extends JApplet { } if ((loopValue.matches("\\d*"))) { - getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); + getvertex(eventName).setTaintFixedNumber(loopVal); } { frameLatencyDetailedAnalysis.error(loopValue + " Expression in For Loop is not supported by Tainting"); @@ -1497,7 +1526,7 @@ public class DirectedGraphTranslator extends JApplet { vertex startv = vertex(taskStartName, currentElement.getID()); g.addVertex(startv); - updatemainBar("v"); + updateMainBar(); // gVertecies.add(vertex(taskStartName)); getvertex(taskStartName).setType(vertex.TYPE_START); getvertex(taskStartName).setTaintFixedNumber(1); @@ -1520,10 +1549,10 @@ public class DirectedGraphTranslator extends JApplet { if (sendingPortdetails != null && !sendingPortdetails.isBlocking()) { warnings.add( - "send event port:" + sendingPortdetails.getPortName() + " is non-blocking. Use tainting for an accurate latency analysis"); + "Send event port:" + sendingPortdetails.getPortName() + " is non-blocking. Use tainting for an accurate latency analysis"); } if (sendingPortdetails != null && sendingPortdetails.isFinite()) { - warnings.add("send event port:" + sendingPortdetails.getPortName() + " is Finite. Event lost is not supported in latency analysis "); + warnings.add("Send event port:" + sendingPortdetails.getPortName() + " is Finite. Event lost is not supported in latency analysis "); } String receivePortparams = waitEvent.getAllParams(); @@ -1847,7 +1876,7 @@ public class DirectedGraphTranslator extends JApplet { if (sp != null && rp != null) { if (!sp.isBlocking() && !rp.isBlocking()) { - warnings.add("send data port:" + sp.getPortName() + " and read data port:" + rp.getPortName() + warnings.add("Send data port:" + sp.getPortName() + " and read data port:" + rp.getPortName() + " are non-blocking. Use tainting for an accurate latency analysis."); } @@ -2052,9 +2081,7 @@ public class DirectedGraphTranslator extends JApplet { vertex preV = vertex(preEventName, preEventid); g.addVertex(v); - updatemainBar("v"); - // gVertecies.add(vertex(eventName)); - + updateMainBar(); g.addEdge(preV, v); opCount++; @@ -2062,7 +2089,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = vertex(eventName, eventid); g.addVertex(v); - updatemainBar("v"); + updateMainBar(); // gVertecies.add(vertex(eventName)); g.addEdge(getvertex(taskStartName), getvertex(eventName)); opCount++; @@ -2425,7 +2452,7 @@ public class DirectedGraphTranslator extends JApplet { vertex taskEndVertex = vertex(taskEndName, taskEndid); g.addVertex(taskEndVertex); - updatemainBar("v"); + updateMainBar(); // gVertecies.add(vertex(taskEndName)); getvertex(eventName).setType(vertex.TYPE_END); getvertex(eventName).setTaintFixedNumber(1); @@ -3277,6 +3304,9 @@ public class DirectedGraphTranslator extends JApplet { int j = 0; for (SimulationTransaction st : transFile1) { + int startTime = Integer.valueOf(st.startTime); + int endTime = Integer.valueOf(st.endTime); + int id = Integer.valueOf(st.id); if (st.coreNumber == null) { st.coreNumber = "0"; @@ -3311,36 +3341,38 @@ public class DirectedGraphTranslator extends JApplet { String tasknameCheckID = ""; - if (st.command.contains("SelectEvent params:")) { - st.command = st.command.replace("SelectEvent", "Wait: " + st.channelName); + if (st.command.contains(selectEventparam)) { + st.command = st.command.replace(selectEvent, waitSt + st.channelName); String[] chN = st.channelName.split("__"); String eventN = chN[chN.length - 1]; - vertex v = getvertexFromID(Integer.valueOf(st.id)); + vertex v = getvertexFromID(id); String vName = v.getName(); if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vsec : Graphs.successorListOf(g, v)) { - if (vsec.getName().contains("wait event: " + eventN + "(")) { + if (vsec.getName().contains(waitEvent + eventN + "(")) { st.id = String.valueOf(vsec.getId()); + id = vsec.getId(); } } } - } else if (st.command.contains("Wait reqChannel_")) { - vertex v = getvertexFromID(Integer.valueOf(st.id)); + } else if (st.command.contains(waitReqLabel)) { + vertex v = getvertexFromID(id); if (v.getType() == vertex.TYPE_START) { if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vbefore : Graphs.successorListOf(g, v)) { - if (vbefore.getName().startsWith("getReqArg")) { + if (vbefore.getName().contains(getReqArgLabel)) { st.id = String.valueOf(vbefore.getId()); + id = vbefore.getId(); } } @@ -3391,7 +3423,7 @@ public class DirectedGraphTranslator extends JApplet { if (isNumeric(taskToAddid)) { - if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) { + if (Integer.valueOf(taskToAddid).equals(id)) { taskname = tasknameCheck.toString(); @@ -3412,7 +3444,7 @@ public class DirectedGraphTranslator extends JApplet { } - times1.add(Integer.valueOf(st.startTime)); + times1.add(startTime); Collections.sort(times1); } @@ -3657,7 +3689,7 @@ public class DirectedGraphTranslator extends JApplet { task2DeviceName = st.deviceName; task2CoreNbr = st.coreNumber; - times2.add(Integer.valueOf(st.endTime)); + times2.add(endTime); Collections.sort(times2); } @@ -3675,7 +3707,7 @@ public class DirectedGraphTranslator extends JApplet { ArrayList<Integer> timeValues = new ArrayList<Integer>(); timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, Integer.valueOf(st.startTime)); + timeValues.add(1, startTime); if (!(st.runnableTime).equals(st.startTime)) { @@ -3734,7 +3766,7 @@ public class DirectedGraphTranslator extends JApplet { task2DeviceName = st.deviceName; task2CoreNbr = st.coreNumber; - times2.add(Integer.valueOf(st.endTime)); + times2.add(endTime); Collections.sort(times2); } @@ -3752,7 +3784,7 @@ public class DirectedGraphTranslator extends JApplet { ArrayList<Integer> timeValues = new ArrayList<Integer>(); timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, Integer.valueOf(st.startTime)); + timeValues.add(1, startTime); if (!(st.runnableTime).equals(st.startTime)) { @@ -3841,26 +3873,33 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : relatedsimTraceswithTaint.get(labeli)) { - if (!(Integer.valueOf(st.startTime) < s1 && Integer.valueOf(st.endTime) <= s1) - && !(Integer.valueOf(st.startTime) >= s2 && Integer.valueOf(st.endTime) > s2)) { + int startTime = Integer.valueOf(st.startTime); + int endTime = Integer.valueOf(st.endTime); + + if (!(startTime < s1 && endTime <= s1) && !(startTime >= s2 && endTime > s2)) { // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) // < maxTime) { - if (Integer.valueOf(st.endTime) > s2) { - st.endTime = Integer.valueOf(s2).toString(); - st.length = Integer.valueOf(Integer.valueOf(s2) - Integer.valueOf(st.startTime)).toString(); + if (endTime > s2) { + + endTime = s2; + st.endTime = String.valueOf(s2); + st.length = String.valueOf(s2 - startTime); } - if (Integer.valueOf(st.startTime) < s1 && Integer.valueOf(st.endTime) != s1) { - st.startTime = Integer.valueOf(s1).toString(); - st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(s1)).toString(); + if (startTime < s1 && endTime != s1) { + startTime = s1; + st.startTime = String.valueOf(s1); + st.length = String.valueOf(endTime - s1); } - if (Integer.valueOf(st.startTime) < s1 && Integer.valueOf(st.endTime) > s2) { - st.startTime = Integer.valueOf(s1).toString(); - st.endTime = Integer.valueOf(s2).toString(); - st.length = Integer.valueOf(Integer.valueOf(s2) - Integer.valueOf(s1)).toString(); + if (startTime < s1 && endTime > s2) { + endTime = s2; + startTime = s1; + st.startTime = String.valueOf(s1); + st.endTime = String.valueOf(s2); + st.length = String.valueOf(s2 - s1); } relatedSTTaint.add(st); @@ -3882,26 +3921,30 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : delayDueTosimTraces) { - if (!(Integer.valueOf(st.startTime) < times1.get(row) && Integer.valueOf(st.endTime) <= times1.get(row)) - && !(Integer.valueOf(st.startTime) >= times2.get(row) && Integer.valueOf(st.endTime) > times2.get(row))) { + int startTime = Integer.valueOf(st.startTime); + int endTime = Integer.valueOf(st.endTime); - // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) - // < maxTime) { + if (!(startTime < times1.get(row) && endTime <= times1.get(row)) + && !(startTime >= times2.get(row) && endTime > times2.get(row))) { - if (Integer.valueOf(st.endTime) > times2.get(row)) { + if (endTime > times2.get(row)) { + endTime = times2.get(row); st.endTime = times2.get(row).toString(); - st.length = Integer.valueOf(Integer.valueOf(times2.get(row)) - Integer.valueOf(st.startTime)).toString(); + st.length = String.valueOf(times2.get(row) - startTime); } - if (Integer.valueOf(st.startTime) < times1.get(row)) { - st.startTime = Integer.valueOf(times1.get(row)).toString(); - st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(times1.get(row))).toString(); + if (startTime < times1.get(row)) { + startTime = times1.get(row); + st.startTime = times1.get(row).toString(); + st.length = String.valueOf(endTime - times1.get(row)); } - if (Integer.valueOf(st.startTime) < times1.get(row) && Integer.valueOf(st.endTime) > times2.get(row)) { - st.startTime = Integer.valueOf(times1.get(row)).toString(); + if (startTime < times1.get(row) && endTime > times2.get(row)) { + endTime = times2.get(row); + startTime = times1.get(row); + st.startTime = times1.get(row).toString(); st.endTime = times2.get(row).toString(); - st.length = Integer.valueOf(Integer.valueOf(times2.get(row)) - Integer.valueOf(times1.get(row))).toString(); + st.length = String.valueOf(times2.get(row) - times1.get(row)); } delayDueTosimTracesTaint.add(st); @@ -3918,17 +3961,19 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : transFile1) { + int startTime = Integer.valueOf(st.startTime); + int endTime = Integer.valueOf(st.endTime); + int selectID = Integer.valueOf(st.id); + if (st.coreNumber == null) { st.coreNumber = "0"; } - if (st.command.contains("SelectEvent params:") && getvertexFromID(Integer.valueOf(st.id)).getType() == 11) { - st.command = st.command.replace("SelectEvent params:", "Wait" + st.channelName); - - int selectID = Integer.valueOf(st.id); + if (st.command.contains(selectEventparam) && getvertexFromID(selectID).getType() == 11) { + st.command = st.command.replace(selectEventparam, waitLabel + st.channelName); - vertex selectV = getvertexFromID(Integer.valueOf(selectID)); + vertex selectV = getvertexFromID(selectID); String[] chName = st.channelName.toString().split("__"); @@ -3940,17 +3985,19 @@ public class DirectedGraphTranslator extends JApplet { if (nextV.getName().contains(waitEvnt)) { st.id = String.valueOf(nextV.getId()); + selectID = nextV.getId(); } } - } else if (st.command.contains("Wait reqChannel_")) { - vertex v = getvertexFromID(Integer.valueOf(st.id)); + } else if (st.command.contains(waitReqLabel)) { + vertex v = getvertexFromID(selectID); if (v.getType() == vertex.TYPE_START) { if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vbefore : Graphs.successorListOf(g, v)) { - if (vbefore.getName().startsWith("getReqArg")) { + if (vbefore.getName().contains(getReqArgLabel)) { st.id = String.valueOf(vbefore.getId()); + selectID = vbefore.getId(); } } @@ -3959,20 +4006,20 @@ public class DirectedGraphTranslator extends JApplet { } } - if (st.id.equals(idTask1) && !times1.contains(Integer.valueOf(st.startTime))) { + if (st.id.equals(idTask1) && !times1.contains(startTime)) { Task1Traces.add(st); task1DeviceName = st.deviceName; task1CoreNbr = st.coreNumber; - times1.add(Integer.valueOf(st.startTime)); + times1.add(startTime); Collections.sort(times1); } - if (st.id.equals(idTask2) && !times2.contains(Integer.valueOf(st.endTime))) { + if (st.id.equals(idTask2) && !times2.contains(endTime)) { Task2Traces.add(st); task2DeviceName = st.deviceName; task2CoreNbr = st.coreNumber; - times2.add(Integer.valueOf(st.endTime)); + times2.add(endTime); Collections.sort(times1); } @@ -3999,23 +4046,18 @@ public class DirectedGraphTranslator extends JApplet { runnableTimePerDevice = new HashMap<String, ArrayList<ArrayList<Integer>>>(); for (SimulationTransaction st : transFile1) { - Boolean onPath = false; - - // if (Integer.valueOf(st.startTime) >= times1.get(i) && - // Integer.valueOf(st.startTime) < times2.get(i)) { - - if (!(Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) <= times1.get(i)) - && !(Integer.valueOf(st.startTime) >= times2.get(i) && Integer.valueOf(st.endTime) > times2.get(i))) { - // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) - // < maxTime) { + int startTime = Integer.valueOf(st.startTime); + int endTime = Integer.valueOf(st.endTime); + int selectID = Integer.valueOf(st.id); + Boolean onPath = false; - if (st.command.contains("SelectEvent params:") && getvertexFromID(Integer.valueOf(st.id)).getType() == 11) { - st.command = st.command.replace("SelectEvent params:", "Wait" + st.channelName); + if (!(startTime < times1.get(i) && endTime <= times1.get(i)) && !(startTime >= times2.get(i) && endTime > times2.get(i))) { - int selectID = Integer.valueOf(st.id); + if (st.command.contains(selectEventparam) && getvertexFromID(selectID).getType() == 11) { + st.command = st.command.replace(selectEventparam, waitLabel + st.channelName); - vertex selectV = getvertexFromID(Integer.valueOf(selectID)); + vertex selectV = getvertexFromID(selectID); String[] chName = st.channelName.toString().split("__"); @@ -4027,16 +4069,18 @@ public class DirectedGraphTranslator extends JApplet { if (nextV.getName().contains(waitEvnt)) { st.id = String.valueOf(nextV.getId()); + selectID = nextV.getId(); } } - } else if (st.command.contains("Wait reqChannel_")) { - vertex v = getvertexFromID(Integer.valueOf(st.id)); + } else if (st.command.contains(waitReqLabel)) { + vertex v = getvertexFromID(selectID); if (v.getType() == vertex.TYPE_START) { if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vbefore : Graphs.successorListOf(g, v)) { - if (vbefore.getName().startsWith("getReqArg")) { + if (vbefore.getName().startsWith(getReqArgLabel)) { st.id = String.valueOf(vbefore.getId()); + selectID = vbefore.getId(); } } @@ -4045,20 +4089,24 @@ public class DirectedGraphTranslator extends JApplet { } } - if (Integer.valueOf(st.endTime) > times2.get(i)) { + if (endTime > times2.get(i)) { + endTime = times2.get(i); st.endTime = times2.get(i).toString(); - st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(st.startTime)).toString(); + st.length = String.valueOf(times2.get(i) - startTime); } - if (Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) != times1.get(i)) { - st.startTime = Integer.valueOf(times1.get(i)).toString(); - st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(times1.get(i))).toString(); + if (startTime < times1.get(i) && endTime != times1.get(i)) { + startTime = times1.get(i); + st.startTime = String.valueOf(times1.get(i)); + st.length = String.valueOf(endTime - times1.get(i)); } - if (Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) > times2.get(i)) { - st.startTime = Integer.valueOf(times1.get(i)).toString(); + if (startTime < times1.get(i) && endTime > times2.get(i)) { + st.startTime = String.valueOf(times1.get(i)); st.endTime = times2.get(i).toString(); - st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(times1.get(i))).toString(); + st.length = String.valueOf(times2.get(i) - times1.get(i)); + startTime = times1.get(i); + endTime = times2.get(i); } String taskname = ""; @@ -4072,7 +4120,7 @@ public class DirectedGraphTranslator extends JApplet { String taskToAddid = taskToAdd[taskToAddindex - 1]; if (isNumeric(taskToAddid)) { - if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) { + if (Integer.valueOf(taskToAddid).equals(selectID)) { taskname = tasknameCheck.toString(); break; @@ -4100,7 +4148,7 @@ public class DirectedGraphTranslator extends JApplet { relatedsimTraces.add(st); ArrayList<Integer> timeValues = new ArrayList<Integer>(); timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, Integer.valueOf(st.startTime)); + timeValues.add(1, startTime); String dName = st.deviceName + "_" + st.coreNumber; @@ -4194,10 +4242,10 @@ public class DirectedGraphTranslator extends JApplet { Document dom = builder.newDocument(); - Element root2 = dom.createElement("Transactions"); + Element root2 = dom.createElement(transactions); dom.appendChild(root2); // write DOM to XML file - Element root1 = dom.createElement("Mandatory"); + Element root1 = dom.createElement(mandatory); root2.appendChild(root1); // write DOM to XML file for (int i = 0; i < onPath.size(); i++) { @@ -4205,22 +4253,22 @@ public class DirectedGraphTranslator extends JApplet { SimulationTransaction st = onPath.get(i); // first create root element - Element root = dom.createElement("st"); + Element root = dom.createElement(stLAbel); root1.appendChild(root); // set `id` attribute to root element - Attr attr = dom.createAttribute("id"); + Attr attr = dom.createAttribute(idLabel); attr.setValue(st.id); root.setAttributeNode(attr); - // now create child elements (name, email, phone) - Element operator = dom.createElement("operator"); + // now create child elements + Element operator = dom.createElement(operatorLabel); operator.setTextContent(st.command); - Element start = dom.createElement("starttime"); + Element start = dom.createElement(startTimeLabel); start.setTextContent(st.startTime); - Element et = dom.createElement("endtime"); + Element et = dom.createElement(endTimeLabel); et.setTextContent(st.endTime); - Element l = dom.createElement("length"); + Element l = dom.createElement(lengthLabel); l.setTextContent(st.length); // add child nodes to root node @@ -4231,7 +4279,7 @@ public class DirectedGraphTranslator extends JApplet { } - Element root3 = dom.createElement("NoContention"); + Element root3 = dom.createElement(noContentionLabel); root2.appendChild(root3); // write DOM to XML file for (int i = 0; i < offPath.size(); i++) { @@ -4239,22 +4287,22 @@ public class DirectedGraphTranslator extends JApplet { SimulationTransaction st = offPath.get(i); // first create root element - Element root5 = dom.createElement("st"); + Element root5 = dom.createElement(stLAbel); root3.appendChild(root5); // set `id` attribute to root element - Attr attr = dom.createAttribute("id"); + Attr attr = dom.createAttribute(idLabel); attr.setValue(st.id); root5.setAttributeNode(attr); - // now create child elements (name, email, phone) - Element operator = dom.createElement("operator"); + // now create child elements + Element operator = dom.createElement(operatorLabel); operator.setTextContent(st.command); - Element start = dom.createElement("starttime"); + Element start = dom.createElement(startTimeLabel); start.setTextContent(st.startTime); - Element et = dom.createElement("endtime"); + Element et = dom.createElement(endTimeLabel); et.setTextContent(st.endTime); - Element l = dom.createElement("length"); + Element l = dom.createElement(lengthLabel); l.setTextContent(st.length); // add child nodes to root node @@ -4265,7 +4313,7 @@ public class DirectedGraphTranslator extends JApplet { } - Element root4 = dom.createElement("Contention"); + Element root4 = dom.createElement(contentionLabel); root2.appendChild(root4); // write DOM to XML file for (int i = 0; i < offPathDelay.size(); i++) { @@ -4273,22 +4321,22 @@ public class DirectedGraphTranslator extends JApplet { SimulationTransaction st = offPathDelay.get(i); // first create root element - Element root6 = dom.createElement("st"); + Element root6 = dom.createElement(stLAbel); root4.appendChild(root6); // set `id` attribute to root element - Attr attr = dom.createAttribute("id"); + Attr attr = dom.createAttribute(idLabel); attr.setValue(st.id); root6.setAttributeNode(attr); - // now create child elements (name, email, phone) - Element operator = dom.createElement("operator"); + // now create child elements + Element operator = dom.createElement(operatorLabel); operator.setTextContent(st.command); - Element start = dom.createElement("starttime"); + Element start = dom.createElement(startTimeLabel); start.setTextContent(st.startTime); - Element et = dom.createElement("endtime"); + Element et = dom.createElement(endTimeLabel); et.setTextContent(st.endTime); - Element l = dom.createElement("length"); + Element l = dom.createElement(lengthLabel); l.setTextContent(st.length); // add child nodes to root node @@ -4329,7 +4377,7 @@ public class DirectedGraphTranslator extends JApplet { Document dom = builder.newDocument(); - Element root1 = dom.createElement("LatencyTable"); + Element root1 = dom.createElement(latencyTableLabel); dom.appendChild(root1); for (int id = 0; id < dataByTask.length; id++) { @@ -4342,24 +4390,24 @@ public class DirectedGraphTranslator extends JApplet { String op2 = String.valueOf(dataByTask[id][2]); // first create root element - Element root = dom.createElement("Row"); + Element root = dom.createElement(rowLabel); root1.appendChild(root); // set `id` attribute to root element - Attr attr = dom.createAttribute("id"); + Attr attr = dom.createAttribute(idLabel); attr.setValue(String.valueOf(id)); root.setAttributeNode(attr); - // now create child elements (name, email, phone) - Element operator1 = dom.createElement("op1"); + // now create child elements + Element operator1 = dom.createElement(op1); operator1.setTextContent(op1); - Element operator2 = dom.createElement("op2"); + Element operator2 = dom.createElement(op2); operator2.setTextContent(op2); - Element st = dom.createElement("starttime"); + Element st = dom.createElement(startTimeLabel); st.setTextContent(starttime); - Element et = dom.createElement("endtime"); + Element et = dom.createElement(endTimeLabel); et.setTextContent(endtime); - Element lat = dom.createElement("latency"); + Element lat = dom.createElement(latencyLabel); lat.setTextContent(latency); // add child nodes to root node @@ -4381,24 +4429,19 @@ public class DirectedGraphTranslator extends JApplet { String op2 = String.valueOf(dataByTaskMinMax[0][2]); // first create root element - Element root = dom.createElement("Min"); + Element root = dom.createElement(minLabel); root1.appendChild(root); - // set `id` attribute to root element - // Attr attr = dom.createAttribute("id"); - // attr.setValue(String.valueOf(0)); - // root.setAttributeNode(attr); - - // now create child elements (name, email, phone) - Element operator1 = dom.createElement("op1"); + // now create child elements + Element operator1 = dom.createElement(op1); operator1.setTextContent(op1); - Element operator2 = dom.createElement("op2"); + Element operator2 = dom.createElement(op2); operator2.setTextContent(op2); - Element st = dom.createElement("starttime"); + Element st = dom.createElement(startTimeLabel); st.setTextContent(starttime); - Element et = dom.createElement("endtime"); + Element et = dom.createElement(endTimeLabel); et.setTextContent(endtime); - Element lat = dom.createElement("latency"); + Element lat = dom.createElement(latencyLabel); lat.setTextContent(latency); // add child nodes to root node @@ -4416,24 +4459,19 @@ public class DirectedGraphTranslator extends JApplet { String op2Max = String.valueOf(dataByTaskMinMax[1][2]); // first create root element - Element rootMax = dom.createElement("Max"); + Element rootMax = dom.createElement(maxLabel); root1.appendChild(rootMax); - // set `id` attribute to root element - // Attr attrMax = dom.createAttribute("id"); - // attrMax.setValue(String.valueOf(1)); - // root1.setAttributeNode(attrMax); - // now create child elements - Element operator1Max = dom.createElement("op1"); + Element operator1Max = dom.createElement(op1); operator1Max.setTextContent(op1Max); - Element operator2Max = dom.createElement("op2"); + Element operator2Max = dom.createElement(op2); operator2Max.setTextContent(op2Max); - Element stMax = dom.createElement("starttime"); + Element stMax = dom.createElement(startTimeLabel); stMax.setTextContent(starttimeMax); - Element etMax = dom.createElement("endtime"); + Element etMax = dom.createElement(endTimeLabel); etMax.setTextContent(endtimeMax); - Element latMax = dom.createElement("latency"); + Element latMax = dom.createElement(latencyLabel); latMax.setTextContent(latencyMax); // add child nodes to root node @@ -5758,26 +5796,29 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : transFile) { Boolean onPath = false; - if (!(Integer.valueOf(st.startTime) < minTime && Integer.valueOf(st.endTime) < minTime) - && !(Integer.valueOf(st.startTime) > maxTime && Integer.valueOf(st.endTime) > maxTime)) { - - // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) - // < maxTime) { + int startTime = Integer.valueOf(st.startTime); + int endTime = Integer.valueOf(st.endTime); + int id = Integer.valueOf(st.id); + if (!(startTime < minTime && endTime < minTime) && !(startTime > maxTime && endTime > maxTime)) { - if (Integer.valueOf(st.endTime) > maxTime) { - st.endTime = Integer.valueOf(maxTime).toString(); - st.length = Integer.valueOf(Integer.valueOf(maxTime) - Integer.valueOf(st.startTime)).toString(); + if (endTime > maxTime) { + endTime = maxTime; + st.endTime = String.valueOf(maxTime); + st.length = String.valueOf(maxTime - startTime); } - if (Integer.valueOf(st.startTime) < minTime) { - st.startTime = Integer.valueOf(minTime).toString(); - st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(minTime)).toString(); + if (startTime < minTime) { + startTime = minTime; + st.startTime = String.valueOf(minTime); + st.length = String.valueOf(endTime - minTime); } - if (Integer.valueOf(st.startTime) < minTime && Integer.valueOf(st.endTime) > maxTime) { - st.startTime = Integer.valueOf(minTime).toString(); - st.endTime = Integer.valueOf(maxTime).toString(); - st.length = Integer.valueOf(Integer.valueOf(maxTime) - Integer.valueOf(minTime)).toString(); + if (startTime < minTime && endTime > maxTime) { + endTime = maxTime; + startTime = minTime; + st.startTime = String.valueOf(minTime); + st.endTime = String.valueOf(maxTime); + st.length = String.valueOf(maxTime - minTime); } String taskname = ""; @@ -5789,7 +5830,7 @@ public class DirectedGraphTranslator extends JApplet { String taskToAddid = taskToAdd[taskToAddindex - 1]; if (isNumeric(taskToAddid)) { - if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) { + if (Integer.valueOf(taskToAddid).equals(id)) { taskname = tasknameCheck.toString(); @@ -5819,7 +5860,7 @@ public class DirectedGraphTranslator extends JApplet { ArrayList<Integer> timeValues = new ArrayList<Integer>(); timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, Integer.valueOf(st.startTime)); + timeValues.add(1, startTime); if (!(st.runnableTime).equals(st.startTime)) {