#22 Fix bug in ArgoUML Select(1)&2 by giving priority to isCreation()
= true that references are equals, and just remove VertexObject from
Arguments.
1 parent 73f387f commit 2093a565ec6717bc2e0010efb11e01368f10cf27
Aki Hongo authored on 29 Dec 2020
Showing 5 changed files
View
72
src/org/ntlab/deltaViewer/CollaborationObjectCallGraph.java
* Merge ExtractedStructure not to overlap reference.
* @param e ExtractedStructure to be merged into the field.
*/
public void merge(ExtractedStructure e) {
references.addAll(e.getDelta().getSrcSide());
references.addAll(e.getDelta().getDstSide());
// references.addAll(e.getDelta().getSrcSide());
// references.addAll(e.getDelta().getDstSide());
// Prefer isCreatioin() = true references, if references are equal, but isCreation() is different.
for (Reference srcSideRef: e.getDelta().getSrcSide()) {
if (references.contains(srcSideRef)) {
List<Reference> refs = getReferences(); // Convert to List from Set.
int idx = refs.indexOf(srcSideRef);
Reference ref = refs.get(idx);
if (srcSideRef.isCreation() != ref.isCreation()) {
if (srcSideRef.isCreation()) {
references.remove(ref);
references.add(srcSideRef);
}
}
} else {
references.add(srcSideRef);
}
}
for (Reference dstSideRef: e.getDelta().getDstSide()) {
if (references.contains(dstSideRef)) {
List<Reference> refs = getReferences(); // Convert to List from Set.
int idx = refs.indexOf(dstSideRef);
Reference ref = refs.get(idx);
if (dstSideRef.isCreation() != ref.isCreation()) {
if (dstSideRef.isCreation()) {
references.remove(ref);
references.add(dstSideRef);
}
}
} else {
references.add(dstSideRef);
}
}
 
// There may be bug. (Two object has each coordinator like JHotDraw Transform)
MethodExecution thisStartPoint = startPoints.get(0);
MethodExecution tmp = thisStartPoint;
}
}
System.out.println("replaceCollectionChains: ");
for (Reference ref: references) {
System.out.println("\t" + ref.getSrcClassName() + "(" + ref.getSrcObjectId() + ")" + " -> " + ref.getDstClassName() + "(" + ref.getDstObjectId() + "): " + ref.isCollection());
System.out.println("\t" + ref.getSrcClassName() + "(" + ref.getSrcObjectId() + ")" + " -> " + ref.getDstClassName() + "(" + ref.getDstObjectId() + "): " + ref.isCollection() + ", " + ref.isCreation());
}
}
private List<Reference> collectCollectionReferences(List<Reference> references) {
View
2
■■■
src/org/ntlab/deltaViewer/CollaborationViewer.java
}
}
}
doAnimation(curFrame, numFrame);
} else if (curFrameAlias != null && numFrameAlias == null && curFrameAlias.getTimeStamp() < relatedPoints.get(relatedPoints.size() - 1).getStatement().getTimeStamp()) {
} else if (curFrameAlias != null && numFrameAlias == null) {
System.out.println("\r\nLast Animation.");
doLastAnimation(numFrame, relatedPoints.get(relatedPoints.size() - 1));
} else {
System.out.println("ERROR : Not exist alias.");
View
src/org/ntlab/deltaViewer/MagnetRONViewer.java
View
src/tests/CollaborationObjectCallGraphTest.java
View
src/tests/MagnetRONFrameTest.java