diff --git a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java index e38ff3023153d2308a7bfe6b3e2335fd4319dbda..ecee6adeec7dca2f00a04d431ac34bf2de1ef978 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 SysML Model As Directed Graph"); + private final JFrame frame = new JFrame("The Sys-ML Model As Directed Graph"); private List<Integer> times1 = new ArrayList<Integer>(); private List<Integer> times2 = new ArrayList<Integer>(); @@ -234,31 +234,6 @@ 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) { @@ -360,11 +335,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.vertexSet().contains(getvertex(ch.getName()))) { vertex v2 = vertex(ch.getName(), ch.getID()); g.addVertex(v2); - updateMainBar(); + updatemainBar("v"); // gVertecies.add(vertex(ch.getName())); getvertex(ch.getName()).setType(vertex.TYPE_CHANNEL); getvertex(ch.getName()).setTaintFixedNumber(0); - updateMainBar(); + updatemainBar(ch.getName()); } @@ -431,11 +406,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(ChannelName))) { g.addVertex(v); - updateMainBar(); + updatemainBar("v"); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); - updateMainBar(); + updatemainBar("ChannelName"); } @@ -460,13 +435,13 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(ChannelName))) { g.addVertex(v); - updateMainBar(); + updatemainBar("v"); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); - updateMainBar(); + updatemainBar("ChannelName"); } @@ -491,11 +466,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updateMainBar(); + updatemainBar("v"); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); - updateMainBar(); + updatemainBar("ChannelName"); } @@ -522,7 +497,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updateMainBar(); + updatemainBar("getMemories"); } @@ -570,7 +545,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updateMainBar(); + updatemainBar("getHwBridge"); } @@ -594,7 +569,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - updateMainBar(); + updatemainBar("getBUSs"); } @@ -883,7 +858,7 @@ public class DirectedGraphTranslator extends JApplet { } - private void updateMainBar() { + private void updatemainBar(String string) { nbOfNodes++; @@ -953,11 +928,11 @@ public class DirectedGraphTranslator extends JApplet { if (!g.vertexSet().contains(getvertex(key))) { g.addVertex(vertex(key, keyID)); - updateMainBar(); + updatemainBar(key); } if (!g.vertexSet().contains(getvertex(taskName))) { g.addVertex(vertex(taskName, taskID)); - updateMainBar(); + updatemainBar(taskName); } g.addEdge(getvertex(key), getvertex(taskName)); @@ -979,7 +954,7 @@ public class DirectedGraphTranslator extends JApplet { if (currentElement.getName().equals("Stop after infinite loop")) { opCount++; - updateMainBar(); + updatemainBar("v"); if (opCount <= activity.nElements()) { if (currentElement.getNexts().size() == 1) { @@ -999,7 +974,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(); + updatemainBar("v"); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1009,7 +984,7 @@ public class DirectedGraphTranslator extends JApplet { int id = ((TMLReadChannel) (currentElement)).getChannel(0).getID(); if (!g.containsVertex(getvertex(name))) { g.addVertex(vertex(name, id)); - updateMainBar(); + updatemainBar("v"); } @@ -1031,7 +1006,7 @@ public class DirectedGraphTranslator extends JApplet { } opCount++; - updateMainBar(); + updatemainBar("v"); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1044,7 +1019,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = getvertex(vName); if (!g.containsVertex(v)) { g.addVertex(vertex(vName, vid)); - updateMainBar(); + updatemainBar("v"); } @@ -1066,7 +1041,7 @@ public class DirectedGraphTranslator extends JApplet { // g.addEdge(getvertex(taskName),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName())); opCount++; - updateMainBar(); + updatemainBar("v"); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1074,7 +1049,7 @@ public class DirectedGraphTranslator extends JApplet { } else if (currentElement.getName().equals("stopOfFork") || currentElement.getName().equals("stop2OfFork") || currentElement.getName().equals("stopOfJoin")) { opCount++; - updateMainBar(); + updatemainBar("v"); // currentElement = currentElement.getNexts().firstElement(); continue; } else if (taskName.startsWith("JOINTASK_S_") && currentElement.getName().startsWith("ReadOfJoin")) { @@ -1084,7 +1059,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(vName))) { g.addVertex(vertex(vName, vid)); - updateMainBar(); + updatemainBar("v"); } @@ -1106,7 +1081,7 @@ public class DirectedGraphTranslator extends JApplet { // g.addEdge(getvertex(task.getName()),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName())); opCount++; - updateMainBar(); + updatemainBar("v"); currentElement = currentElement.getNexts().firstElement(); @@ -1118,7 +1093,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(vName))) { g.addVertex(vertex(vName, vid)); - updateMainBar(); + updatemainBar("v"); } @@ -1140,7 +1115,7 @@ public class DirectedGraphTranslator extends JApplet { } opCount++; - updateMainBar(); + updatemainBar("v"); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1153,7 +1128,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = getvertex(vName); if (!g.containsVertex(v)) { g.addVertex(vertex(vName, vid)); - updateMainBar(); + updatemainBar("v"); } @@ -1175,7 +1150,7 @@ public class DirectedGraphTranslator extends JApplet { // g.addEdge(getvertex(taskName),getvertex(((TMLWriteChannel)(currentElement)).getChannel(0).getName())); opCount++; - updateMainBar(); + updatemainBar("v"); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1186,7 +1161,7 @@ public class DirectedGraphTranslator extends JApplet { int id = ((TMLWaitEvent) (currentElement)).getEvent().getID(); if (!g.containsVertex(getvertex(name))) { g.addVertex(vertex(name, id)); - updateMainBar(); + updatemainBar("v"); } @@ -1208,7 +1183,7 @@ public class DirectedGraphTranslator extends JApplet { } opCount++; - updateMainBar(); + updatemainBar("v"); currentElement = currentElement.getNexts().firstElement(); continue; @@ -1331,12 +1306,10 @@ 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(loopVal); + getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); } else { for (TMLAttribute att : taskAc.getAttributes()) { @@ -1346,7 +1319,7 @@ public class DirectedGraphTranslator extends JApplet { } - getvertex(eventName).setTaintFixedNumber(loopVal); + getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); } } @@ -1356,12 +1329,10 @@ 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(loopVal); + getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); } else { for (TMLAttribute att : taskAc.getAttributes()) { @@ -1371,7 +1342,7 @@ public class DirectedGraphTranslator extends JApplet { } if ((loopValue.matches("\\d*"))) { - getvertex(eventName).setTaintFixedNumber(loopVal); + getvertex(eventName).setTaintFixedNumber(Integer.valueOf(loopValue)); } { frameLatencyDetailedAnalysis.error(loopValue + " Expression in For Loop is not supported by Tainting"); @@ -1526,7 +1497,7 @@ public class DirectedGraphTranslator extends JApplet { vertex startv = vertex(taskStartName, currentElement.getID()); g.addVertex(startv); - updateMainBar(); + updatemainBar("v"); // gVertecies.add(vertex(taskStartName)); getvertex(taskStartName).setType(vertex.TYPE_START); getvertex(taskStartName).setTaintFixedNumber(1); @@ -1549,10 +1520,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(); @@ -1876,7 +1847,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."); } @@ -2081,7 +2052,9 @@ public class DirectedGraphTranslator extends JApplet { vertex preV = vertex(preEventName, preEventid); g.addVertex(v); - updateMainBar(); + updatemainBar("v"); + // gVertecies.add(vertex(eventName)); + g.addEdge(preV, v); opCount++; @@ -2089,7 +2062,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = vertex(eventName, eventid); g.addVertex(v); - updateMainBar(); + updatemainBar("v"); // gVertecies.add(vertex(eventName)); g.addEdge(getvertex(taskStartName), getvertex(eventName)); opCount++; @@ -2452,7 +2425,7 @@ public class DirectedGraphTranslator extends JApplet { vertex taskEndVertex = vertex(taskEndName, taskEndid); g.addVertex(taskEndVertex); - updateMainBar(); + updatemainBar("v"); // gVertecies.add(vertex(taskEndName)); getvertex(eventName).setType(vertex.TYPE_END); getvertex(eventName).setTaintFixedNumber(1); @@ -3304,9 +3277,6 @@ 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"; @@ -3341,20 +3311,20 @@ public class DirectedGraphTranslator extends JApplet { String tasknameCheckID = ""; - if (st.command.contains(selectEventparam)) { - st.command = st.command.replace(selectEvent, waitSt + st.channelName); + if (st.command.contains("SelectEvent params:")) { + st.command = st.command.replace("SelectEvent", "Wait: " + st.channelName); String[] chN = st.channelName.split("__"); String eventN = chN[chN.length - 1]; - vertex v = getvertexFromID(id); + vertex v = getvertexFromID(Integer.valueOf(st.id)); String vName = v.getName(); if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vsec : Graphs.successorListOf(g, v)) { - if (vsec.getName().contains(waitEvent + eventN + "(")) { + if (vsec.getName().contains("wait event: " + eventN + "(")) { st.id = String.valueOf(vsec.getId()); } @@ -3362,14 +3332,14 @@ public class DirectedGraphTranslator extends JApplet { } - } else if (st.command.contains(waitReqLabel)) { - vertex v = getvertexFromID(id); + } else if (st.command.contains("Wait reqChannel_")) { + vertex v = getvertexFromID(Integer.valueOf(st.id)); if (v.getType() == vertex.TYPE_START) { if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vbefore : Graphs.successorListOf(g, v)) { - if (vbefore.getName().startsWith(getReqArgLabel)) { + if (vbefore.getName().startsWith("getReqArg")) { st.id = String.valueOf(vbefore.getId()); } @@ -3421,7 +3391,7 @@ public class DirectedGraphTranslator extends JApplet { if (isNumeric(taskToAddid)) { - if (Integer.valueOf(taskToAddid).equals(id)) { + if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) { taskname = tasknameCheck.toString(); @@ -3442,7 +3412,7 @@ public class DirectedGraphTranslator extends JApplet { } - times1.add(startTime); + times1.add(Integer.valueOf(st.startTime)); Collections.sort(times1); } @@ -3687,7 +3657,7 @@ public class DirectedGraphTranslator extends JApplet { task2DeviceName = st.deviceName; task2CoreNbr = st.coreNumber; - times2.add(endTime); + times2.add(Integer.valueOf(st.endTime)); Collections.sort(times2); } @@ -3705,7 +3675,7 @@ public class DirectedGraphTranslator extends JApplet { ArrayList<Integer> timeValues = new ArrayList<Integer>(); timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, startTime); + timeValues.add(1, Integer.valueOf(st.startTime)); if (!(st.runnableTime).equals(st.startTime)) { @@ -3764,7 +3734,7 @@ public class DirectedGraphTranslator extends JApplet { task2DeviceName = st.deviceName; task2CoreNbr = st.coreNumber; - times2.add(endTime); + times2.add(Integer.valueOf(st.endTime)); Collections.sort(times2); } @@ -3782,7 +3752,7 @@ public class DirectedGraphTranslator extends JApplet { ArrayList<Integer> timeValues = new ArrayList<Integer>(); timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, startTime); + timeValues.add(1, Integer.valueOf(st.startTime)); if (!(st.runnableTime).equals(st.startTime)) { @@ -3871,28 +3841,26 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : relatedsimTraceswithTaint.get(labeli)) { - 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) < s1 && Integer.valueOf(st.endTime) <= s1) + && !(Integer.valueOf(st.startTime) >= s2 && Integer.valueOf(st.endTime) > s2)) { // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) // < maxTime) { - if (endTime > s2) { - st.endTime = String.valueOf(s2); - st.length = String.valueOf(s2 - startTime); + 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 (startTime < s1 && endTime != s1) { - st.startTime = String.valueOf(s1); - st.length = String.valueOf(endTime - s1); + 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 > s2) { - st.startTime = String.valueOf(s1); - st.endTime = String.valueOf(s2); - st.length = String.valueOf(s2 - 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(); } relatedSTTaint.add(st); @@ -3914,26 +3882,26 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : delayDueTosimTraces) { - int startTime = Integer.valueOf(st.startTime); - int endTime = Integer.valueOf(st.endTime); + 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))) { - if (!(startTime < times1.get(row) && endTime <= times1.get(row)) - && !(startTime >= times2.get(row) && endTime > times2.get(row))) { + // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) + // < maxTime) { - if (endTime > times2.get(row)) { + if (Integer.valueOf(st.endTime) > times2.get(row)) { st.endTime = times2.get(row).toString(); - st.length = String.valueOf(times2.get(row) - startTime); + st.length = Integer.valueOf(Integer.valueOf(times2.get(row)) - Integer.valueOf(st.startTime)).toString(); } - if (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)) { + 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) && endTime > times2.get(row)) { - st.startTime = times1.get(row).toString(); + if (Integer.valueOf(st.startTime) < times1.get(row) && Integer.valueOf(st.endTime) > times2.get(row)) { + st.startTime = Integer.valueOf(times1.get(row)).toString(); st.endTime = times2.get(row).toString(); - st.length = String.valueOf(times2.get(row) - times1.get(row)); + st.length = Integer.valueOf(Integer.valueOf(times2.get(row)) - Integer.valueOf(times1.get(row))).toString(); } delayDueTosimTracesTaint.add(st); @@ -3950,19 +3918,17 @@ 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(selectEventparam) && getvertexFromID(selectID).getType() == 11) { - st.command = st.command.replace(selectEventparam, waitLabel + st.channelName); + 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); - vertex selectV = getvertexFromID(selectID); + vertex selectV = getvertexFromID(Integer.valueOf(selectID)); String[] chName = st.channelName.toString().split("__"); @@ -3977,13 +3943,13 @@ public class DirectedGraphTranslator extends JApplet { } } - } else if (st.command.contains(waitReqLabel)) { - vertex v = getvertexFromID(selectID); + } else if (st.command.contains("Wait reqChannel_")) { + vertex v = getvertexFromID(Integer.valueOf(st.id)); if (v.getType() == vertex.TYPE_START) { if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vbefore : Graphs.successorListOf(g, v)) { - if (vbefore.getName().startsWith(getReqArgLabel)) { + if (vbefore.getName().startsWith("getReqArg")) { st.id = String.valueOf(vbefore.getId()); } @@ -3993,20 +3959,20 @@ public class DirectedGraphTranslator extends JApplet { } } - if (st.id.equals(idTask1) && !times1.contains(startTime)) { + if (st.id.equals(idTask1) && !times1.contains(Integer.valueOf(st.startTime))) { Task1Traces.add(st); task1DeviceName = st.deviceName; task1CoreNbr = st.coreNumber; - times1.add(startTime); + times1.add(Integer.valueOf(st.startTime)); Collections.sort(times1); } - if (st.id.equals(idTask2) && !times2.contains(endTime)) { + if (st.id.equals(idTask2) && !times2.contains(Integer.valueOf(st.endTime))) { Task2Traces.add(st); task2DeviceName = st.deviceName; task2CoreNbr = st.coreNumber; - times2.add(endTime); + times2.add(Integer.valueOf(st.endTime)); Collections.sort(times1); } @@ -4033,18 +3999,23 @@ public class DirectedGraphTranslator extends JApplet { runnableTimePerDevice = new HashMap<String, ArrayList<ArrayList<Integer>>>(); for (SimulationTransaction st : transFile1) { - - int startTime = Integer.valueOf(st.startTime); - int endTime = Integer.valueOf(st.endTime); - int selectID = Integer.valueOf(st.id); Boolean onPath = false; - if (!(startTime < times1.get(i) && endTime <= times1.get(i)) && !(startTime >= times2.get(i) && endTime > times2.get(i))) { + // 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) { + + if (st.command.contains("SelectEvent params:") && getvertexFromID(Integer.valueOf(st.id)).getType() == 11) { + st.command = st.command.replace("SelectEvent params:", "Wait" + st.channelName); - if (st.command.contains(selectEventparam) && getvertexFromID(selectID).getType() == 11) { - st.command = st.command.replace(selectEventparam, waitLabel + st.channelName); + int selectID = Integer.valueOf(st.id); - vertex selectV = getvertexFromID(selectID); + vertex selectV = getvertexFromID(Integer.valueOf(selectID)); String[] chName = st.channelName.toString().split("__"); @@ -4058,13 +4029,13 @@ public class DirectedGraphTranslator extends JApplet { st.id = String.valueOf(nextV.getId()); } } - } else if (st.command.contains(waitReqLabel)) { - vertex v = getvertexFromID(selectID); + } else if (st.command.contains("Wait reqChannel_")) { + vertex v = getvertexFromID(Integer.valueOf(st.id)); if (v.getType() == vertex.TYPE_START) { if (Graphs.vertexHasSuccessors(g, v)) { for (vertex vbefore : Graphs.successorListOf(g, v)) { - if (vbefore.getName().startsWith(getReqArgLabel)) { + if (vbefore.getName().startsWith("getReqArg")) { st.id = String.valueOf(vbefore.getId()); } @@ -4074,20 +4045,20 @@ public class DirectedGraphTranslator extends JApplet { } } - if (endTime > times2.get(i)) { + if (Integer.valueOf(st.endTime) > times2.get(i)) { st.endTime = times2.get(i).toString(); - st.length = String.valueOf(times2.get(i) - startTime); + st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(st.startTime)).toString(); } - if (startTime < times1.get(i) && endTime != 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) != 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 > times2.get(i)) { - st.startTime = String.valueOf(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(); st.endTime = times2.get(i).toString(); - st.length = String.valueOf(times2.get(i) - times1.get(i)); + st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(times1.get(i))).toString(); } String taskname = ""; @@ -4101,7 +4072,7 @@ public class DirectedGraphTranslator extends JApplet { String taskToAddid = taskToAdd[taskToAddindex - 1]; if (isNumeric(taskToAddid)) { - if (Integer.valueOf(taskToAddid).equals(selectID)) { + if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) { taskname = tasknameCheck.toString(); break; @@ -4129,7 +4100,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, startTime); + timeValues.add(1, Integer.valueOf(st.startTime)); String dName = st.deviceName + "_" + st.coreNumber; @@ -4223,10 +4194,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++) { @@ -4234,22 +4205,22 @@ public class DirectedGraphTranslator extends JApplet { SimulationTransaction st = onPath.get(i); // first create root element - Element root = dom.createElement(stLAbel); + Element root = dom.createElement("st"); root1.appendChild(root); // set `id` attribute to root element - Attr attr = dom.createAttribute(idLabel); + Attr attr = dom.createAttribute("id"); attr.setValue(st.id); root.setAttributeNode(attr); - // now create child elements - Element operator = dom.createElement(operatorLabel); + // now create child elements (name, email, phone) + Element operator = dom.createElement("operator"); operator.setTextContent(st.command); - Element start = dom.createElement(startTimeLabel); + Element start = dom.createElement("starttime"); start.setTextContent(st.startTime); - Element et = dom.createElement(endTimeLabel); + Element et = dom.createElement("endtime"); et.setTextContent(st.endTime); - Element l = dom.createElement(lengthLabel); + Element l = dom.createElement("length"); l.setTextContent(st.length); // add child nodes to root node @@ -4260,7 +4231,7 @@ public class DirectedGraphTranslator extends JApplet { } - Element root3 = dom.createElement(noContentionLabel); + Element root3 = dom.createElement("NoContention"); root2.appendChild(root3); // write DOM to XML file for (int i = 0; i < offPath.size(); i++) { @@ -4268,22 +4239,22 @@ public class DirectedGraphTranslator extends JApplet { SimulationTransaction st = offPath.get(i); // first create root element - Element root5 = dom.createElement(stLAbel); + Element root5 = dom.createElement("st"); root3.appendChild(root5); // set `id` attribute to root element - Attr attr = dom.createAttribute(idLabel); + Attr attr = dom.createAttribute("id"); attr.setValue(st.id); root5.setAttributeNode(attr); - // now create child elements - Element operator = dom.createElement(operatorLabel); + // now create child elements (name, email, phone) + Element operator = dom.createElement("operator"); operator.setTextContent(st.command); - Element start = dom.createElement(startTimeLabel); + Element start = dom.createElement("starttime"); start.setTextContent(st.startTime); - Element et = dom.createElement(endTimeLabel); + Element et = dom.createElement("endtime"); et.setTextContent(st.endTime); - Element l = dom.createElement(lengthLabel); + Element l = dom.createElement("length"); l.setTextContent(st.length); // add child nodes to root node @@ -4294,7 +4265,7 @@ public class DirectedGraphTranslator extends JApplet { } - Element root4 = dom.createElement(contentionLabel); + Element root4 = dom.createElement("Contention"); root2.appendChild(root4); // write DOM to XML file for (int i = 0; i < offPathDelay.size(); i++) { @@ -4302,22 +4273,22 @@ public class DirectedGraphTranslator extends JApplet { SimulationTransaction st = offPathDelay.get(i); // first create root element - Element root6 = dom.createElement(stLAbel); + Element root6 = dom.createElement("st"); root4.appendChild(root6); // set `id` attribute to root element - Attr attr = dom.createAttribute(idLabel); + Attr attr = dom.createAttribute("id"); attr.setValue(st.id); root6.setAttributeNode(attr); - // now create child elements - Element operator = dom.createElement(operatorLabel); + // now create child elements (name, email, phone) + Element operator = dom.createElement("operator"); operator.setTextContent(st.command); - Element start = dom.createElement(startTimeLabel); + Element start = dom.createElement("starttime"); start.setTextContent(st.startTime); - Element et = dom.createElement(endTimeLabel); + Element et = dom.createElement("endtime"); et.setTextContent(st.endTime); - Element l = dom.createElement(lengthLabel); + Element l = dom.createElement("length"); l.setTextContent(st.length); // add child nodes to root node @@ -4358,7 +4329,7 @@ public class DirectedGraphTranslator extends JApplet { Document dom = builder.newDocument(); - Element root1 = dom.createElement(latencyTableLabel); + Element root1 = dom.createElement("LatencyTable"); dom.appendChild(root1); for (int id = 0; id < dataByTask.length; id++) { @@ -4371,24 +4342,24 @@ public class DirectedGraphTranslator extends JApplet { String op2 = String.valueOf(dataByTask[id][2]); // first create root element - Element root = dom.createElement(rowLabel); + Element root = dom.createElement("Row"); root1.appendChild(root); // set `id` attribute to root element - Attr attr = dom.createAttribute(idLabel); + Attr attr = dom.createAttribute("id"); attr.setValue(String.valueOf(id)); root.setAttributeNode(attr); - // now create child elements - Element operator1 = dom.createElement(op1); + // now create child elements (name, email, phone) + 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(startTimeLabel); + Element st = dom.createElement("starttime"); st.setTextContent(starttime); - Element et = dom.createElement(endTimeLabel); + Element et = dom.createElement("endtime"); et.setTextContent(endtime); - Element lat = dom.createElement(latencyLabel); + Element lat = dom.createElement("latency"); lat.setTextContent(latency); // add child nodes to root node @@ -4410,19 +4381,24 @@ public class DirectedGraphTranslator extends JApplet { String op2 = String.valueOf(dataByTaskMinMax[0][2]); // first create root element - Element root = dom.createElement(minLabel); + Element root = dom.createElement("Min"); root1.appendChild(root); - // now create child elements - Element operator1 = dom.createElement(op1); + // 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"); operator1.setTextContent(op1); - Element operator2 = dom.createElement(op2); + Element operator2 = dom.createElement("op2"); operator2.setTextContent(op2); - Element st = dom.createElement(startTimeLabel); + Element st = dom.createElement("starttime"); st.setTextContent(starttime); - Element et = dom.createElement(endTimeLabel); + Element et = dom.createElement("endtime"); et.setTextContent(endtime); - Element lat = dom.createElement(latencyLabel); + Element lat = dom.createElement("latency"); lat.setTextContent(latency); // add child nodes to root node @@ -4440,19 +4416,24 @@ public class DirectedGraphTranslator extends JApplet { String op2Max = String.valueOf(dataByTaskMinMax[1][2]); // first create root element - Element rootMax = dom.createElement(maxLabel); + Element rootMax = dom.createElement("Max"); 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(startTimeLabel); + Element stMax = dom.createElement("starttime"); stMax.setTextContent(starttimeMax); - Element etMax = dom.createElement(endTimeLabel); + Element etMax = dom.createElement("endtime"); etMax.setTextContent(endtimeMax); - Element latMax = dom.createElement(latencyLabel); + Element latMax = dom.createElement("latency"); latMax.setTextContent(latencyMax); // add child nodes to root node @@ -5777,25 +5758,26 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : transFile) { Boolean onPath = false; - 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.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) { - if (endTime > maxTime) { - st.endTime = String.valueOf(maxTime); - st.length = String.valueOf(maxTime - startTime); + 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 (startTime < minTime) { - st.startTime = String.valueOf(minTime); - st.length = String.valueOf(endTime - minTime); + 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 && endTime > maxTime) { - st.startTime = String.valueOf(minTime); - st.endTime = String.valueOf(maxTime); - st.length = String.valueOf(maxTime - 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(); } String taskname = ""; @@ -5807,7 +5789,7 @@ public class DirectedGraphTranslator extends JApplet { String taskToAddid = taskToAdd[taskToAddindex - 1]; if (isNumeric(taskToAddid)) { - if (Integer.valueOf(taskToAddid).equals(id)) { + if (Integer.valueOf(taskToAddid).equals(Integer.valueOf(st.id))) { taskname = tasknameCheck.toString(); @@ -5837,7 +5819,7 @@ public class DirectedGraphTranslator extends JApplet { ArrayList<Integer> timeValues = new ArrayList<Integer>(); timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, startTime); + timeValues.add(1, Integer.valueOf(st.startTime)); if (!(st.runnableTime).equals(st.startTime)) { @@ -5992,7 +5974,7 @@ public class DirectedGraphTranslator extends JApplet { } try { if (times2MinMAx.contains(match)) { - times2MinMAx.remove(match); + times2MinMAx.remove(Integer.valueOf(match)); } } catch (Exception e) { } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java index ffa019edd607b348442bbbb1418b6cbf680744f5..2abae0a061d16988886d016a997d74723cb85b75 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java @@ -106,7 +106,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener private LatencyAnalysisParallelAlgorithms tc; private JCheckBox taintFirstOp, considerRules; - + private static final String startTimeColName = "Start Time "; private static final String endTimeColName = "End Time "; private static final String latencyColName = "Latency "; @@ -525,9 +525,9 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener } buttonShowDGraph1.setEnabled(true); - if (pbar.getValue()==pbar.getMaximum()) { + if (pbar.getValue() == pbar.getMaximum()) { updateBar(0); - + } jta.append("Browse the second simulation trace to generate the second graph \n"); browse.setEnabled(true); @@ -584,9 +584,9 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener buttonShowDGraph2.setEnabled(true); buttonDetailedAnalysis.setEnabled(true); buttonCompareInDetails.setEnabled(true); - if (pbar.getValue()==pbar.getMaximum()) { - updateBar(0); - + if (pbar.getValue() == pbar.getMaximum()) { + updateBar(0); + } this.pack(); this.revalidate();