diff --git a/src/org/ntlab/deltaViewer/CollaborationObjectCallGraph.java b/src/org/ntlab/deltaViewer/CollaborationObjectCallGraph.java index ed4bc60..41031d0 100644 --- a/src/org/ntlab/deltaViewer/CollaborationObjectCallGraph.java +++ b/src/org/ntlab/deltaViewer/CollaborationObjectCallGraph.java @@ -122,4 +122,8 @@ }).collect(Collectors.toList()); return sortedTpList; } + + public void shrinkAll() { + // TODO Implement shrinkAll(). + } } diff --git a/src/org/ntlab/deltaViewer/DeltaAliasCollector.java b/src/org/ntlab/deltaViewer/DeltaAliasCollector.java index ebad72e..cd25b31 100644 --- a/src/org/ntlab/deltaViewer/DeltaAliasCollector.java +++ b/src/org/ntlab/deltaViewer/DeltaAliasCollector.java @@ -4,9 +4,11 @@ import java.util.List; import org.ntlab.deltaExtractor.Alias; +import org.ntlab.deltaExtractor.Alias.AliasType; import org.ntlab.deltaExtractor.IAliasTracker; import org.ntlab.trace.MethodExecution; import org.ntlab.trace.MethodInvocation; +import org.ntlab.trace.Statement; /** * Collect delta alias for MagnetRON.(Derived from DeltaAliasTracker.) @@ -75,4 +77,50 @@ } + public void shrink() { + // TODO Implement shrink(). + List standardMethodInvocations = collectStandardMethodInvocations(aliasList); + List> invocatoinChains = collectInvocatoinChains(standardMethodInvocations); + replaceInvocatoinChains(aliasList, invocatoinChains); + } + + private List collectStandardMethodInvocations(List aliasList) { + // TODO Implement collectStandardMethodInvocations(). + for (int i = 0; i < aliasList.size(); i++) { + Alias alias = aliasList.get(i); + if (alias.getAliasType() == AliasType.RECEIVER) { + Statement st = alias.getOccurrencePoint().getStatement(); + MethodInvocation methodInvocation = (MethodInvocation)st; + if (methodInvocation.getCalledMethodExecution().isCollectionType()) { + + } + } else if (alias.getAliasType() == AliasType.THIS) { + if (alias.getMethodExecution().isCollectionType()) { + } + } else if (alias.getAliasType() == AliasType.RETURN_VALUE) { + if (alias.getMethodExecution().isCollectionType()) { + } + } else if (alias.getAliasType() == AliasType.METHOD_INVOCATION) { + Statement st = alias.getOccurrencePoint().getStatement(); + MethodInvocation methodInvocation = (MethodInvocation)st; + if (methodInvocation.getCalledMethodExecution().isCollectionType()) { + } + } + } + return null; + + } + + private List> collectInvocatoinChains(List standardMethodInvocations) { + // TODO Implement collectInvocatoinChains(). + return null; + + } + + private List replaceInvocatoinChains(List aliasList, List> invocatoinChains) { + // TODO Implement replaceInvocatoinChains(). + return null; + } + + }