diff --git a/plugin.xml b/plugin.xml index dfc8153..fe414c1 100644 --- a/plugin.xml +++ b/plugin.xml @@ -186,7 +186,7 @@ treeNodeList = new ArrayList<>(); - for (IMarker marker : markersByOrder) { - try { - TreeNode node = new TreeNode(marker); - String markerType = marker.getType(); - switch (markerType) { - case COORDINATOR_DELTA_MARKER: - roots[0] = node; - break; - case SRC_SIDE_DELTA_MARKER: - case DST_SIDE_DELTA_MARKER: - node.setParent(roots[1]); - treeNodeList.add(node); - break; - case BOTTOM_DELTA_MARKER: - roots[2] = node; - break; - } - } catch (CoreException e) { - e.printStackTrace(); + List markers; + markers = markerIdToMarkers.get(COORDINATOR_DELTA_MARKER); + roots[0] = new TreeNode(markers.get(0)); + List dstSideMarkers = markerIdToMarkers.get(DST_SIDE_DELTA_MARKER); + List srcSideMarkers = markerIdToMarkers.get(SRC_SIDE_DELTA_MARKER); + int dstSideMarkersSize = (dstSideMarkers != null) ? dstSideMarkers.size() : 0; + int srcSideMarkersSize = (srcSideMarkers != null) ? srcSideMarkers.size() : 0; + TreeNode[] children = new TreeNode[dstSideMarkersSize + srcSideMarkersSize]; + if (dstSideMarkers != null) { + for (int i = 0; i < dstSideMarkers.size(); i++) { + children[i] = new TreeNode(dstSideMarkers.get(i)); } } - roots[1].setChildren(treeNodeList.toArray(new TreeNode[treeNodeList.size()])); + if (srcSideMarkers != null) { + for (int i = 0; i < srcSideMarkers.size(); i++) { + children[dstSideMarkersSize + i] = new TreeNode(srcSideMarkers.get(i)); + } + } + roots[1].setChildren(children); + markers = markerIdToMarkers.get(BOTTOM_DELTA_MARKER); + roots[2] = new TreeNode(markers.get(0)); return roots; } @@ -149,21 +147,21 @@ } public void createMarkerAndOpenJavaFileForAll() { - int srcSideCnt = 1; - int dstSideCnt = 1; markAndOpenJavaFileForCoordinator(coordinator, "Coordinator", DeltaMarkerManager.COORDINATOR_DELTA_MARKER); - List relatedAliases = aliasCollector.getRelatedAliases(); - Collections.reverse(relatedAliases); - for (Alias alias : relatedAliases) { - String side = aliasCollector.resolveSideInTheDelta(alias); - if (side.contains(DeltaRelatedAliasCollector.SRC_SIDE)) { - String message = String.format("SrcSide%03d", srcSideCnt); - markAndOpenJavaFileForAlias(alias, message, DeltaMarkerManager.SRC_SIDE_DELTA_MARKER); - srcSideCnt++; - } else if (side.contains(DeltaRelatedAliasCollector.DST_SIDE)) { - String message = String.format("DstSide%03d", dstSideCnt); - markAndOpenJavaFileForAlias(alias, message, DeltaMarkerManager.DST_SIDE_DELTA_MARKER); - dstSideCnt++; + List dstSideAliases = new ArrayList<>(aliasCollector.getDstSideRelatedAliases()); + List srcSideAliases = new ArrayList<>(aliasCollector.getSrcSideRelatedAliases()); + List> relatedAliasesList = new ArrayList<>(); + relatedAliasesList.add(dstSideAliases); + relatedAliasesList.add(srcSideAliases); + String[] messagesTemplates = {"GetterSide%03d", "SetterSide%03d"}; + String[] markerIDList = {DST_SIDE_DELTA_MARKER, SRC_SIDE_DELTA_MARKER}; + for (int i = 0; i < relatedAliasesList.size(); i++) { + List relatedAliases = relatedAliasesList.get(i); + Collections.reverse(relatedAliases); + int cnt = 1; + for (Alias alias : relatedAliases) { + String message = String.format(messagesTemplates[i], cnt++); + markAndOpenJavaFileForAlias(alias, message, markerIDList[i]); } } markAndOpenJavaFileForCreationPoint(relatedPoint, relatedPointReference, "RelatedPoint", DeltaMarkerManager.BOTTOM_DELTA_MARKER); diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java index 6ab3400..d9be4d4 100644 --- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java +++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java @@ -79,6 +79,14 @@ return relatedAliases; } + public List getSrcSideRelatedAliases() { + return srcSideRelatedAliases; + } + + public List getDstSideRelatedAliases() { + return dstSideRelatedAliases; + } + public String resolveSideInTheDelta(Alias alias) { int index; index = srcSideRelatedAliases.indexOf(alias);