diff --git a/plugin.xml b/plugin.xml
index 2536e1b..03de67c 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -61,9 +61,9 @@
diff --git a/src/org/ntlab/traceDebugger/CallStackModels.java b/src/org/ntlab/traceDebugger/CallStackModels.java
index 545c2dd..70b9be4 100644
--- a/src/org/ntlab/traceDebugger/CallStackModels.java
+++ b/src/org/ntlab/traceDebugger/CallStackModels.java
@@ -76,7 +76,7 @@
debuggingThreadId = tpStatement.getThreadNo();
debuggingThreadCallStacks = update(tp);
allCallStacks.put(debuggingThreadId, debuggingThreadCallStacks);
- IStatementVisitor visitor = new CallStackVisitor(tp);
+// IStatementVisitor visitor = new CallStackVisitor(tp);
// updateOtherThreadCallStacks(visitor);
}
diff --git a/src/org/ntlab/traceDebugger/CallStackVisitor.java b/src/org/ntlab/traceDebugger/CallStackVisitor.java
deleted file mode 100644
index 9fcbf70..0000000
--- a/src/org/ntlab/traceDebugger/CallStackVisitor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.ntlab.traceDebugger;
-
-import org.ntlab.traceAnalysisPlatform.tracer.trace.IStatementVisitor;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodInvocation;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.Statement;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
-
-public class CallStackVisitor implements IStatementVisitor {
- private TracePoint before = null;
-
- public CallStackVisitor() {
-
- }
-
- public CallStackVisitor(TracePoint before) {
- this.before = before;
- }
-
- @Override
- public boolean preVisitStatement(Statement statement) {
- System.out.println("CallStackVisitor#preVisitStatement(Statement)");
- if (!(statement instanceof MethodInvocation)) return false;
- if (before == null) return true;
- MethodInvocation mi = (MethodInvocation)statement;
- return (mi.getTimeStamp() < before.getStatement().getTimeStamp());
- }
-
- @Override
- public boolean postVisitStatement(Statement statement) {
- return false;
- }
-}
diff --git a/src/org/ntlab/traceDebugger/DebuggingController.java b/src/org/ntlab/traceDebugger/DebuggingController.java
index 8fcc9e2..23dcdc0 100644
--- a/src/org/ntlab/traceDebugger/DebuggingController.java
+++ b/src/org/ntlab/traceDebugger/DebuggingController.java
@@ -100,7 +100,7 @@
((CallStackView)TraceDebuggerPlugin.getActiveView(CallStackView.ID)).reset();
((VariableView)TraceDebuggerPlugin.getActiveView(VariableView.ID)).reset();
((BreakPointView)TraceDebuggerPlugin.getActiveView(BreakPointView.ID)).reset();
- TracePointsView tracePointsView = (TracePointsView)TraceDebuggerPlugin.getActiveView(TracePointsView.ID);
+ TracePointsRegisterView tracePointsView = (TracePointsRegisterView)TraceDebuggerPlugin.getActiveView(TracePointsRegisterView.ID);
if (tracePointsView != null) tracePointsView.reset();
CallTreeView callTreeView = (CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID);
if (callTreeView != null) callTreeView.reset();
diff --git a/src/org/ntlab/traceDebugger/DeltaMarkerView.java b/src/org/ntlab/traceDebugger/DeltaMarkerView.java
index 62b620b..01948d6 100644
--- a/src/org/ntlab/traceDebugger/DeltaMarkerView.java
+++ b/src/org/ntlab/traceDebugger/DeltaMarkerView.java
@@ -176,7 +176,8 @@
AbstractAnalyzer analyzer = TraceDebuggerPlugin.getAnalyzer();
if (analyzer instanceof DeltaExtractionAnalyzer) {
DeltaExtractionAnalyzer deltaAnalyzer = (DeltaExtractionAnalyzer)analyzer;
- deltaMarkerManager = deltaAnalyzer.extractDeltaForContainerToComponent(variable);
+ if (deltaMarkerManager == null) deltaMarkerManager = new DeltaMarkerManager();
+ deltaMarkerManager.setDeltaInformation(deltaAnalyzer.extractDeltaForContainerToComponent(variable));
deltaMarkerManager.createMarkerAndOpenJavaFileForAll(); // �f���^���o�̌��ʂ����Ƀ\�[�X�R�[�h�]�\������
updateAfterExtractingDelta();
}
@@ -186,7 +187,8 @@
AbstractAnalyzer analyzer = TraceDebuggerPlugin.getAnalyzer();
if (analyzer instanceof DeltaExtractionAnalyzer) {
DeltaExtractionAnalyzer deltaAnalyzer = (DeltaExtractionAnalyzer)analyzer;
- deltaMarkerManager = deltaAnalyzer.extractDeltaForThisToAnother(thisId, thisClassName, anotherId, anotherClassName, before);
+ if (deltaMarkerManager == null) deltaMarkerManager = new DeltaMarkerManager();
+ deltaMarkerManager.setDeltaInformation(deltaAnalyzer.extractDeltaForThisToAnother(thisId, thisClassName, anotherId, anotherClassName, before));
deltaMarkerManager.createMarkerAndOpenJavaFileForAll(); // �f���^���o�̌��ʂ����Ƀ\�[�X�R�[�h�]�\������
updateAfterExtractingDelta();
}
@@ -213,7 +215,7 @@
CallTreeView callTreeView = (CallTreeView)TraceDebuggerPlugin.getActiveView(CallTreeView.ID);
callTreeView.update(deltaMarkerManager);
callTreeView.highlight(bottomME);
- TracePointsView tracePointsView = (TracePointsView)TraceDebuggerPlugin.getActiveView(TracePointsView.ID);
+ TracePointsRegisterView tracePointsView = (TracePointsRegisterView)TraceDebuggerPlugin.getActiveView(TracePointsRegisterView.ID);
tracePointsView.addTracePoint(creationPoint);
}
}
diff --git a/src/org/ntlab/traceDebugger/ExtendedTreeNode.java b/src/org/ntlab/traceDebugger/ExtendedTreeNode.java
new file mode 100644
index 0000000..bc3ba51
--- /dev/null
+++ b/src/org/ntlab/traceDebugger/ExtendedTreeNode.java
@@ -0,0 +1,39 @@
+package org.ntlab.traceDebugger;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.eclipse.jface.viewers.TreeNode;
+
+public class ExtendedTreeNode extends TreeNode {
+ private List children = new ArrayList<>();
+
+ public ExtendedTreeNode(Object value) {
+ super(value);
+ }
+
+ @Override
+ public ExtendedTreeNode[] getChildren() {
+ if (children != null && children.size() == 0) {
+ return null;
+ }
+ return children.toArray(new ExtendedTreeNode[children.size()]);
+ }
+
+ public List getChildList() {
+ return children;
+ }
+
+ @Override
+ public boolean hasChildren() {
+ return children != null && children.size() > 0;
+ }
+
+ public void setChildren(final ExtendedTreeNode[] children) {
+ this.children = new ArrayList(Arrays.asList(children));
+ }
+
+ public void setChildList(final List children) {
+ this.children = children;
+ }
+}
diff --git a/src/org/ntlab/traceDebugger/ExtendedTreeNodeContentProvider.java b/src/org/ntlab/traceDebugger/ExtendedTreeNodeContentProvider.java
new file mode 100644
index 0000000..527053d
--- /dev/null
+++ b/src/org/ntlab/traceDebugger/ExtendedTreeNodeContentProvider.java
@@ -0,0 +1,17 @@
+package org.ntlab.traceDebugger;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.TreeNodeContentProvider;
+
+public class ExtendedTreeNodeContentProvider extends TreeNodeContentProvider {
+ @Override
+ public Object[] getElements(final Object inputElement) {
+ if (inputElement instanceof List>) {
+ List> list = (List>)inputElement;
+ ExtendedTreeNode[] nodes = list.toArray(new ExtendedTreeNode[list.size()]);
+ return super.getElements(nodes);
+ }
+ return new Object[0];
+ }
+}
diff --git a/src/org/ntlab/traceDebugger/MyTreeNode.java b/src/org/ntlab/traceDebugger/MyTreeNode.java
deleted file mode 100644
index a8eb255..0000000
--- a/src/org/ntlab/traceDebugger/MyTreeNode.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.ntlab.traceDebugger;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import org.eclipse.jface.viewers.TreeNode;
-
-public class MyTreeNode extends TreeNode {
- private List children = new ArrayList<>();
-
- public MyTreeNode(Object value) {
- super(value);
- }
-
- @Override
- public MyTreeNode[] getChildren() {
- if (children != null && children.size() == 0) {
- return null;
- }
- return children.toArray(new MyTreeNode[children.size()]);
- }
-
- public List getChildList() {
- return children;
- }
-
- @Override
- public boolean hasChildren() {
- return children != null && children.size() > 0;
- }
-
- public void setChildren(final MyTreeNode[] children) {
- this.children = new ArrayList(Arrays.asList(children));
- }
-
- public void setChildList(final List children) {
- this.children = children;
- }
-}
diff --git a/src/org/ntlab/traceDebugger/MyTreeNodeContentProvider.java b/src/org/ntlab/traceDebugger/MyTreeNodeContentProvider.java
deleted file mode 100644
index 81a2e76..0000000
--- a/src/org/ntlab/traceDebugger/MyTreeNodeContentProvider.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.ntlab.traceDebugger;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.TreeNodeContentProvider;
-
-public class MyTreeNodeContentProvider extends TreeNodeContentProvider {
- @Override
- public Object[] getElements(final Object inputElement) {
- if (inputElement instanceof List>) {
- List> list = (List>)inputElement;
- MyTreeNode[] nodes = list.toArray(new MyTreeNode[list.size()]);
- return super.getElements(nodes);
- }
- return new Object[0];
- }
-}
diff --git a/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java b/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java
index f08f732..d362011 100644
--- a/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java
+++ b/src/org/ntlab/traceDebugger/TraceDebuggerPerspectiveRelatedDelta.java
@@ -21,7 +21,7 @@
// �E���Ƀg���[�X�|�C���g�̃r���[��z�u
IFolderLayout tracePointsViewArea = layout.createFolder("TracePointsViewArea", IPageLayout.BOTTOM, 0.5f, "CallTreeViewArea");
- tracePointsViewArea.addView(TracePointsView.ID);
+ tracePointsViewArea.addView(TracePointsRegisterView.ID);
// �E��ɕϐ��̃r���[��z�u
IFolderLayout variableViewArea = layout.createFolder("VariableViewArea", IPageLayout.TOP, 0.25f, editorArea);
diff --git a/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java b/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java
index 7f030f5..866d7c0 100644
--- a/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java
+++ b/src/org/ntlab/traceDebugger/TraceDebuggerPlugin.java
@@ -140,7 +140,7 @@
reg.put(BreakPointViewRelatedDelta.BACK_RESUME_DLCL, getImageDescriptor("/icons/debug/backresume_dlcl.png"));
// note: �ϐ��r���[�Ɋւ���A�C�R��
- reg.put(VariableLabelProvider.SPECIAL_VARIABLE, getImageDescriptor("/icons/variable/specialvariable.png"));
+ reg.put(VariableLabelProvider.PSEUDO_VARIABLE, getImageDescriptor("/icons/variable/specialvariable.png"));
reg.put(VariableLabelProvider.THIS_VARIABLE, getImageDescriptor("/icons/variable/thisvariable.png"));
reg.put(VariableLabelProvider.FIELD_VARIABLE, getImageDescriptor("/icons/variable/fieldvariable.png"));
reg.put(VariableLabelProvider.ARG_VARIABLE, getImageDescriptor("/icons/variable/localvariable.png"));
diff --git a/src/org/ntlab/traceDebugger/TracePoints.java b/src/org/ntlab/traceDebugger/TracePoints.java
deleted file mode 100644
index b152466..0000000
--- a/src/org/ntlab/traceDebugger/TracePoints.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.ntlab.traceDebugger;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
-
-public class TracePoints {
- List tracePoints = new ArrayList<>();
-
- public List get() {
- return tracePoints;
- }
-
- public TracePoint[] getToArray() {
- return tracePoints.toArray(new TracePoint[tracePoints.size()]);
- }
-
- public boolean contains(TracePoint tp) {
- return tracePoints.contains(tp);
- }
-
- public void add(TracePoint tp) {
- tracePoints.add(tp);
- }
-
- public void remove(TracePoint tp) {
- tracePoints.remove(tp);
- }
-
- public void clear() {
- tracePoints.clear();
- }
-}
diff --git a/src/org/ntlab/traceDebugger/TracePointsLabelProvider.java b/src/org/ntlab/traceDebugger/TracePointsLabelProvider.java
deleted file mode 100644
index 3d4ae2b..0000000
--- a/src/org/ntlab/traceDebugger/TracePointsLabelProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.ntlab.traceDebugger;
-
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.Trace;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
-
-public class TracePointsLabelProvider extends LabelProvider implements ITableLabelProvider {
-
- @Override
- public String getColumnText(Object element, int columnIndex) {
- if (element instanceof TracePoint) {
- TracePoint tp = (TracePoint)element;
- switch (columnIndex) {
- case 0:
- return String.valueOf(tp.getStatement().getLineNo());
- case 1:
- return getReadableSignature(tp.getMethodExecution());
- }
- }
- return "�e�X�g�p�e�L�X�g" + columnIndex;
- }
-
- @Override
- public Image getColumnImage(Object element, int columnIndex) {
- return null;
- }
-
- private String getReadableSignature(MethodExecution methodExecution) {
- String signature = methodExecution.getSignature();
- String objectType = methodExecution.getThisClassName();
- objectType = objectType.substring(objectType.lastIndexOf(".") + 1);
- boolean isConstructor = methodExecution.isConstructor();
- String declaringType = Trace.getDeclaringType(signature, isConstructor);
- declaringType = declaringType.substring(declaringType.lastIndexOf(".") + 1);
- String methodName = Trace.getMethodName(signature);
- String args = "(";
- String delimiter = "";
- String[] argArray = signature.split("\\(")[1].split(",");
- for (String arg : argArray) {
- args += (delimiter + arg.substring(arg.lastIndexOf(".") + 1));
- delimiter = ", ";
- }
-
- StringBuilder sb = new StringBuilder();
- sb.append(objectType);
- if (!declaringType.equals(objectType)) {
- sb.append("(" + declaringType + ")");
- }
- sb.append("." + methodName + args);
- return sb.toString();
- }
-}
\ No newline at end of file
diff --git a/src/org/ntlab/traceDebugger/TracePointsRegister.java b/src/org/ntlab/traceDebugger/TracePointsRegister.java
new file mode 100644
index 0000000..3eed9df
--- /dev/null
+++ b/src/org/ntlab/traceDebugger/TracePointsRegister.java
@@ -0,0 +1,34 @@
+package org.ntlab.traceDebugger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
+
+public class TracePointsRegister {
+ List tracePoints = new ArrayList<>();
+
+ public List get() {
+ return tracePoints;
+ }
+
+ public TracePoint[] getToArray() {
+ return tracePoints.toArray(new TracePoint[tracePoints.size()]);
+ }
+
+ public boolean contains(TracePoint tp) {
+ return tracePoints.contains(tp);
+ }
+
+ public void add(TracePoint tp) {
+ tracePoints.add(tp);
+ }
+
+ public void remove(TracePoint tp) {
+ tracePoints.remove(tp);
+ }
+
+ public void clear() {
+ tracePoints.clear();
+ }
+}
diff --git a/src/org/ntlab/traceDebugger/TracePointsRegisterLabelProvider.java b/src/org/ntlab/traceDebugger/TracePointsRegisterLabelProvider.java
new file mode 100644
index 0000000..19a4b62
--- /dev/null
+++ b/src/org/ntlab/traceDebugger/TracePointsRegisterLabelProvider.java
@@ -0,0 +1,55 @@
+package org.ntlab.traceDebugger;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution;
+import org.ntlab.traceAnalysisPlatform.tracer.trace.Trace;
+import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
+
+public class TracePointsRegisterLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+ @Override
+ public String getColumnText(Object element, int columnIndex) {
+ if (element instanceof TracePoint) {
+ TracePoint tp = (TracePoint)element;
+ switch (columnIndex) {
+ case 0:
+ return String.valueOf(tp.getStatement().getLineNo());
+ case 1:
+ return getReadableSignature(tp.getMethodExecution());
+ }
+ }
+ return "�e�X�g�p�e�L�X�g" + columnIndex;
+ }
+
+ @Override
+ public Image getColumnImage(Object element, int columnIndex) {
+ return null;
+ }
+
+ private String getReadableSignature(MethodExecution methodExecution) {
+ String signature = methodExecution.getSignature();
+ String objectType = methodExecution.getThisClassName();
+ objectType = objectType.substring(objectType.lastIndexOf(".") + 1);
+ boolean isConstructor = methodExecution.isConstructor();
+ String declaringType = Trace.getDeclaringType(signature, isConstructor);
+ declaringType = declaringType.substring(declaringType.lastIndexOf(".") + 1);
+ String methodName = Trace.getMethodName(signature);
+ String args = "(";
+ String delimiter = "";
+ String[] argArray = signature.split("\\(")[1].split(",");
+ for (String arg : argArray) {
+ args += (delimiter + arg.substring(arg.lastIndexOf(".") + 1));
+ delimiter = ", ";
+ }
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(objectType);
+ if (!declaringType.equals(objectType)) {
+ sb.append("(" + declaringType + ")");
+ }
+ sb.append("." + methodName + args);
+ return sb.toString();
+ }
+}
\ No newline at end of file
diff --git a/src/org/ntlab/traceDebugger/TracePointsRegisterView.java b/src/org/ntlab/traceDebugger/TracePointsRegisterView.java
new file mode 100644
index 0000000..79a11e6
--- /dev/null
+++ b/src/org/ntlab/traceDebugger/TracePointsRegisterView.java
@@ -0,0 +1,212 @@
+package org.ntlab.traceDebugger;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.part.ViewPart;
+import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution;
+import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
+
+public class TracePointsRegisterView extends ViewPart {
+ private TableViewer viewer;
+ private Shell shell;
+ private IAction addAction;
+ private IAction removeAction;
+ private IAction jumpAction;
+ private TracePoint selectedTp;
+ private TracePointsRegister tracePoints = new TracePointsRegister();
+ public static final String ID = "org.ntlab.traceDebugger.tracePointsRegisterView";
+
+ public TracePointsRegisterView() {
+ // TODO Auto-generated constructor stub
+ System.out.println("BreakPointView�N���X���������ꂽ��!");
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ // TODO Auto-generated method stub
+ System.out.println("TracePointsView#createPartControl(Composite)���Ăꂽ��!");
+ shell = parent.getShell();
+ viewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION);
+ Table table = viewer.getTable();
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ // �e�[�u���̃J�������쐬
+ String[] tableColumnTexts = TraceDebuggerPlugin.isJapanese() ? new String[]{"�s", "���\�b�h"}
+ : new String[]{"Line", "Signature"};
+ int[] tableColumnWidth = {80, 1000};
+ TableColumn[] tableColumns = new TableColumn[tableColumnTexts.length];
+ for (int i = 0; i < tableColumns.length; i++) {
+ tableColumns[i] = new TableColumn(table, SWT.NULL);
+ tableColumns[i].setText(tableColumnTexts[i]);
+ tableColumns[i].setWidth(tableColumnWidth[i]);
+ }
+ viewer.setContentProvider(new ArrayContentProvider());
+ viewer.setLabelProvider(new TracePointsRegisterLabelProvider());
+ viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection sel = (IStructuredSelection)event.getSelection();
+ Object element = sel.getFirstElement();
+ if (element instanceof TracePoint) {
+ selectedTp = (TracePoint)element;
+ MethodExecution me = selectedTp.getMethodExecution();
+ int lineNo = selectedTp.getStatement().getLineNo();
+ JavaEditorOperator.openSrcFileOfMethodExecution(me, lineNo);
+ }
+ }
+ });
+ viewer.addDoubleClickListener(new IDoubleClickListener() {
+ @Override
+ public void doubleClick(DoubleClickEvent event) {
+ IStructuredSelection sel = (IStructuredSelection)event.getSelection();
+ Object element = sel.getFirstElement();
+ if (element instanceof TracePoint) {
+ selectedTp = (TracePoint)element;
+ if (DebuggingController.getInstance().isRunning()) {
+ jumpToTheTracePoint(selectedTp);
+ }
+ }
+ }
+ });
+
+ createActions();
+ createToolBar();
+ createMenuBar();
+ createPopupMenu();
+ TraceDebuggerPlugin.setActiveView(ID, this);
+ }
+
+ @Override
+ public String getTitle() {
+ return TraceDebuggerPlugin.isJapanese() ? "���s���_�̓o�^" : "MarkedExecutionPoints";
+ }
+
+ @Override
+ public void setFocus() {
+ // TODO Auto-generated method stub
+ TraceDebuggerPlugin.setActiveView(ID, this);
+ viewer.getControl().setFocus();
+ }
+
+ @Override
+ public void dispose() {
+ TraceDebuggerPlugin.removeView(ID, this);
+ }
+
+ private void createActions() {
+ boolean isJapanese = TraceDebuggerPlugin.isJapanese();
+ String msg;
+
+ addAction = new Action() {
+ @Override
+ public void run() {
+ DebuggingController debuggingController = DebuggingController.getInstance();
+ TracePoint currentTp = debuggingController.getCurrentTp();
+ addTracePoint(currentTp);
+ }
+ };
+ msg = (isJapanese) ? "�lj�" : "Add";
+ addAction.setText(msg);
+ addAction.setToolTipText(msg);
+
+ removeAction = new Action() {
+ @Override
+ public void run() {
+ if (selectedTp != null) {
+ tracePoints.remove(selectedTp);
+ update();
+ }
+ }
+ };
+ msg = (isJapanese) ? "�폜" : "Remove";
+ removeAction.setText(msg);
+ removeAction.setToolTipText(msg);
+
+ jumpAction = new Action() {
+ @Override
+ public void run() {
+ if (selectedTp != null && DebuggingController.getInstance().isRunning()) {
+ jumpToTheTracePoint(selectedTp);
+ }
+ }
+ };
+ msg = (isJapanese) ? "�W�����v" : "Jump";
+ jumpAction.setText(msg);
+ jumpAction.setToolTipText(msg);
+ }
+
+ private void createToolBar() {
+ IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager();
+ mgr.add(addAction);
+ mgr.add(removeAction);
+ mgr.add(jumpAction);
+ }
+
+ private void createMenuBar() {
+ IMenuManager mgr = getViewSite().getActionBars().getMenuManager();
+ mgr.add(addAction);
+ mgr.add(removeAction);
+ mgr.add(jumpAction);
+ }
+
+ private void createPopupMenu() {
+ MenuManager menuMgr = new MenuManager("#PopupMenu");
+ menuMgr.setRemoveAllWhenShown(true);
+ menuMgr.addMenuListener(new IMenuListener() {
+ @Override
+ public void menuAboutToShow(IMenuManager manager) {
+// manager.add(addAction);
+// manager.add(removeAction);
+// manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ }
+ });
+ Menu menu = menuMgr.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(menuMgr, viewer);
+ }
+
+ public void addTracePoint(TracePoint tp) {
+ if (!(tracePoints.contains(tp))) {
+ tracePoints.add(tp);
+ update();
+ }
+ }
+
+ public void reset() {
+ tracePoints.clear();
+ update();
+ }
+
+ private void update() {
+ viewer.setInput(tracePoints.getToArray());
+ viewer.refresh();
+ }
+
+ protected void jumpToTheTracePoint(TracePoint tp) {
+ DebuggingController debuggingController = DebuggingController.getInstance();
+ debuggingController.jumpToTheTracePoint(tp, false);
+ List markers = DebuggingController.getInstance().createCurrentLineMarkers(tp);
+ if (!(markers.isEmpty())) JavaEditorOperator.markAndOpenJavaFile(markers.get(0));
+ }
+}
\ No newline at end of file
diff --git a/src/org/ntlab/traceDebugger/TracePointsView.java b/src/org/ntlab/traceDebugger/TracePointsView.java
deleted file mode 100644
index dff8ced..0000000
--- a/src/org/ntlab/traceDebugger/TracePointsView.java
+++ /dev/null
@@ -1,212 +0,0 @@
-package org.ntlab.traceDebugger;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.part.ViewPart;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution;
-import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
-
-public class TracePointsView extends ViewPart {
- private TableViewer viewer;
- private Shell shell;
- private IAction addAction;
- private IAction removeAction;
- private IAction jumpAction;
- private TracePoint selectedTp;
- private TracePoints tracePoints = new TracePoints();
- public static final String ID = "org.ntlab.traceDebugger.tracePointsView";
-
- public TracePointsView() {
- // TODO Auto-generated constructor stub
- System.out.println("BreakPointView�N���X���������ꂽ��!");
- }
-
- @Override
- public void createPartControl(Composite parent) {
- // TODO Auto-generated method stub
- System.out.println("TracePointsView#createPartControl(Composite)���Ăꂽ��!");
- shell = parent.getShell();
- viewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION);
- Table table = viewer.getTable();
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
-
- // �e�[�u���̃J�������쐬
- String[] tableColumnTexts = TraceDebuggerPlugin.isJapanese() ? new String[]{"�s", "���\�b�h"}
- : new String[]{"Line", "Signature"};
- int[] tableColumnWidth = {80, 1000};
- TableColumn[] tableColumns = new TableColumn[tableColumnTexts.length];
- for (int i = 0; i < tableColumns.length; i++) {
- tableColumns[i] = new TableColumn(table, SWT.NULL);
- tableColumns[i].setText(tableColumnTexts[i]);
- tableColumns[i].setWidth(tableColumnWidth[i]);
- }
- viewer.setContentProvider(new ArrayContentProvider());
- viewer.setLabelProvider(new TracePointsLabelProvider());
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection sel = (IStructuredSelection)event.getSelection();
- Object element = sel.getFirstElement();
- if (element instanceof TracePoint) {
- selectedTp = (TracePoint)element;
- MethodExecution me = selectedTp.getMethodExecution();
- int lineNo = selectedTp.getStatement().getLineNo();
- JavaEditorOperator.openSrcFileOfMethodExecution(me, lineNo);
- }
- }
- });
- viewer.addDoubleClickListener(new IDoubleClickListener() {
- @Override
- public void doubleClick(DoubleClickEvent event) {
- IStructuredSelection sel = (IStructuredSelection)event.getSelection();
- Object element = sel.getFirstElement();
- if (element instanceof TracePoint) {
- selectedTp = (TracePoint)element;
- if (DebuggingController.getInstance().isRunning()) {
- jumpToTheTracePoint(selectedTp);
- }
- }
- }
- });
-
- createActions();
- createToolBar();
- createMenuBar();
- createPopupMenu();
- TraceDebuggerPlugin.setActiveView(ID, this);
- }
-
- @Override
- public String getTitle() {
- return TraceDebuggerPlugin.isJapanese() ? "���s���_�̓o�^" : "MarkedExecutionPoints";
- }
-
- @Override
- public void setFocus() {
- // TODO Auto-generated method stub
- TraceDebuggerPlugin.setActiveView(ID, this);
- viewer.getControl().setFocus();
- }
-
- @Override
- public void dispose() {
- TraceDebuggerPlugin.removeView(ID, this);
- }
-
- private void createActions() {
- boolean isJapanese = TraceDebuggerPlugin.isJapanese();
- String msg;
-
- addAction = new Action() {
- @Override
- public void run() {
- DebuggingController debuggingController = DebuggingController.getInstance();
- TracePoint currentTp = debuggingController.getCurrentTp();
- addTracePoint(currentTp);
- }
- };
- msg = (isJapanese) ? "�lj�" : "Add";
- addAction.setText(msg);
- addAction.setToolTipText(msg);
-
- removeAction = new Action() {
- @Override
- public void run() {
- if (selectedTp != null) {
- tracePoints.remove(selectedTp);
- update();
- }
- }
- };
- msg = (isJapanese) ? "�폜" : "Remove";
- removeAction.setText(msg);
- removeAction.setToolTipText(msg);
-
- jumpAction = new Action() {
- @Override
- public void run() {
- if (selectedTp != null && DebuggingController.getInstance().isRunning()) {
- jumpToTheTracePoint(selectedTp);
- }
- }
- };
- msg = (isJapanese) ? "�W�����v" : "Jump";
- jumpAction.setText(msg);
- jumpAction.setToolTipText(msg);
- }
-
- private void createToolBar() {
- IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager();
- mgr.add(addAction);
- mgr.add(removeAction);
- mgr.add(jumpAction);
- }
-
- private void createMenuBar() {
- IMenuManager mgr = getViewSite().getActionBars().getMenuManager();
- mgr.add(addAction);
- mgr.add(removeAction);
- mgr.add(jumpAction);
- }
-
- private void createPopupMenu() {
- MenuManager menuMgr = new MenuManager("#PopupMenu");
- menuMgr.setRemoveAllWhenShown(true);
- menuMgr.addMenuListener(new IMenuListener() {
- @Override
- public void menuAboutToShow(IMenuManager manager) {
-// manager.add(addAction);
-// manager.add(removeAction);
-// manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
- });
- Menu menu = menuMgr.createContextMenu(viewer.getControl());
- viewer.getControl().setMenu(menu);
- getSite().registerContextMenu(menuMgr, viewer);
- }
-
- public void addTracePoint(TracePoint tp) {
- if (!(tracePoints.contains(tp))) {
- tracePoints.add(tp);
- update();
- }
- }
-
- public void reset() {
- tracePoints.clear();
- update();
- }
-
- private void update() {
- viewer.setInput(tracePoints.getToArray());
- viewer.refresh();
- }
-
- protected void jumpToTheTracePoint(TracePoint tp) {
- DebuggingController debuggingController = DebuggingController.getInstance();
- debuggingController.jumpToTheTracePoint(tp, false);
- List markers = DebuggingController.getInstance().createCurrentLineMarkers(tp);
- if (!(markers.isEmpty())) JavaEditorOperator.markAndOpenJavaFile(markers.get(0));
- }
-}
\ No newline at end of file
diff --git a/src/org/ntlab/traceDebugger/VariableLabelProvider.java b/src/org/ntlab/traceDebugger/VariableLabelProvider.java
index bb57ed5..1e6a696 100644
--- a/src/org/ntlab/traceDebugger/VariableLabelProvider.java
+++ b/src/org/ntlab/traceDebugger/VariableLabelProvider.java
@@ -10,11 +10,11 @@
import org.ntlab.traceDebugger.analyzerProvider.DeltaMarkerManager;
public class VariableLabelProvider extends LabelProvider implements ITableLabelProvider, ITableColorProvider {
- public static final String SPECIAL_VARIABLE = "SpecialVariable";
+ public static final String PSEUDO_VARIABLE = "PseudoVariable";
public static final String THIS_VARIABLE = "ThisVariable";
public static final String FIELD_VARIABLE = "FieldVariable";
public static final String ARG_VARIABLE = "ArgVariable";
- private Image specialVariableImage = TraceDebuggerPlugin.getDefault().getImageRegistry().getDescriptor(SPECIAL_VARIABLE).createImage();
+ private Image pseudoVariableImage = TraceDebuggerPlugin.getDefault().getImageRegistry().getDescriptor(PSEUDO_VARIABLE).createImage();
private Image thisVariableImage = TraceDebuggerPlugin.getDefault().getImageRegistry().getDescriptor(THIS_VARIABLE).createImage();
private Image fieldVariableImage = TraceDebuggerPlugin.getDefault().getImageRegistry().getDescriptor(FIELD_VARIABLE).createImage();
private Image argVariableImage = TraceDebuggerPlugin.getDefault().getImageRegistry().getDescriptor(ARG_VARIABLE).createImage();
@@ -80,7 +80,7 @@
if (element instanceof TreeNode) {
Object value = ((TreeNode)element).getValue();
if (value instanceof String) {
- return specialVariableImage;
+ return pseudoVariableImage;
} else if (value instanceof Variable) {
Variable variable = (Variable)value;
VariableType variableType = variable.getVariableType();
diff --git a/src/org/ntlab/traceDebugger/VariableView.java b/src/org/ntlab/traceDebugger/VariableView.java
index b409e81..e2552ab 100644
--- a/src/org/ntlab/traceDebugger/VariableView.java
+++ b/src/org/ntlab/traceDebugger/VariableView.java
@@ -46,7 +46,7 @@
treeColumns[i].setText(treeColumnTexts[i]);
treeColumns[i].setWidth(treeColumnWidth[i]);
}
- viewer.setContentProvider(new MyTreeNodeContentProvider());
+ viewer.setContentProvider(new ExtendedTreeNodeContentProvider());
viewer.setLabelProvider(new VariableLabelProvider());
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
@@ -66,22 +66,22 @@
public void treeExpanded(TreeExpansionEvent event) {
// �c���[���J������Ɏ��s�����B �����ł͊J�����m�[�h����3��̃m�[�h�����Ēlj�����B
Object element = event.getElement();
- if (!(element instanceof MyTreeNode)) return;
- MyTreeNode expandedNode = (MyTreeNode)element;
+ if (!(element instanceof ExtendedTreeNode)) return;
+ ExtendedTreeNode expandedNode = (ExtendedTreeNode)element;
Object value = expandedNode.getValue();
if (!(value instanceof Variable)) return;
- List childNodes = expandedNode.getChildList();
+ List childNodes = expandedNode.getChildList();
if (childNodes == null) return;
- for (MyTreeNode childNode : childNodes) {
- List grandChildNodes = childNode.getChildList();
+ for (ExtendedTreeNode childNode : childNodes) {
+ List grandChildNodes = childNode.getChildList();
if (grandChildNodes == null) continue;
- for (MyTreeNode grandChildNode : grandChildNodes) {
+ for (ExtendedTreeNode grandChildNode : grandChildNodes) {
Variable grandChildVariable = (Variable)grandChildNode.getValue();
grandChildVariable.createNextHierarchyState();
List list = grandChildVariable.getChildren();
- List nodes = new ArrayList<>();
+ List nodes = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
- nodes.add(i, new MyTreeNode(list.get(i)));
+ nodes.add(i, new ExtendedTreeNode(list.get(i)));
}
grandChildNode.setChildList(nodes);
}
diff --git a/src/org/ntlab/traceDebugger/Variables.java b/src/org/ntlab/traceDebugger/Variables.java
index f30de4a..2770635 100644
--- a/src/org/ntlab/traceDebugger/Variables.java
+++ b/src/org/ntlab/traceDebugger/Variables.java
@@ -23,22 +23,22 @@
public class Variables {
private static final Variables theInstance = new Variables();
private List roots = new ArrayList<>();
- private List rootTreeNodes = new ArrayList<>();
+ private List rootTreeNodes = new ArrayList<>();
public static final String VARIABLE_TYPE_KEY = "variableType";
public static Variables getInstance() {
return theInstance;
}
- public List getVariablesTreeNodesList() {
+ public List getVariablesTreeNodesList() {
return rootTreeNodes;
}
- private void createVariablesTreeNodeList(MyTreeNode parentNode, List addingNodes, int index, Variable addingVariableData) {
- MyTreeNode newNode = new MyTreeNode(addingVariableData);
+ private void createVariablesTreeNodeList(ExtendedTreeNode parentNode, List addingNodes, int index, Variable addingVariableData) {
+ ExtendedTreeNode newNode = new ExtendedTreeNode(addingVariableData);
newNode.setParent(parentNode);
addingNodes.add(index, newNode);
- List childNodes = new ArrayList<>();
+ List childNodes = new ArrayList<>();
addingNodes.get(index).setChildList(childNodes);
for (int i = 0; i < addingVariableData.getChildren().size(); i++) {
Variable child = addingVariableData.getChildren().get(i);
@@ -67,7 +67,7 @@
Variable rootVariableData = roots.get(i);
createVariablesTreeNodeList(null, rootTreeNodes, i, rootVariableData);
}
- createSpecialVariables(from, to);
+ createPseudoVariables(from, to);
}
private void updateRootThisState(MethodExecution methodExecution, TracePoint tp, TracePoint before) {
@@ -135,8 +135,8 @@
public void updateForDifferential(TracePoint from, TracePoint to) {
updateForDifferential(to);
- resetSpecialValues();
- createSpecialVariables(from, to);
+ resetPseudoValues();
+ createPseudoVariables(from, to);
}
private void updateForDifferential(TracePoint before) {
@@ -177,8 +177,8 @@
private void updateForDifferentialField(Variable variable, String valueClassName, String valueId, TracePoint lastUpdatePoint) {
variable.update(valueClassName, valueId, lastUpdatePoint);
variable.createNextHierarchyState();
- MyTreeNode node = getTreeNodeFor(variable, rootTreeNodes);
- List childList = node.getChildList();
+ ExtendedTreeNode node = getTreeNodeFor(variable, rootTreeNodes);
+ List childList = node.getChildList();
childList.clear();
for (int i = 0; i < variable.getChildren().size(); i++) {
Variable childVariable = variable.getChildren().get(i);
@@ -186,9 +186,9 @@
}
}
- private void createSpecialVariables(TracePoint from, TracePoint to) {
- List specialVariablesOfUseSide = new ArrayList<>();
- List specialVariablesDefSide = new ArrayList<>();
+ private void createPseudoVariables(TracePoint from, TracePoint to) {
+ List pseudoVariablesOfUseSide = new ArrayList<>();
+ List pseudoVariablesDefSide = new ArrayList<>();
String parentNodeNameOfUseSide = null;
String parentNodeNameOfDefSide = null;
if (from != null) {
@@ -202,8 +202,8 @@
String valueObjId = fa.getValueObjId();
Variable container = new Variable(Variable.CONTAINER_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, from, VariableType.USE_CONTAINER);
Variable value = new Variable(Variable.VALUE_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, from, VariableType.USE_VALUE);
- specialVariablesOfUseSide.add(container);
- specialVariablesOfUseSide.add(value);
+ pseudoVariablesOfUseSide.add(container);
+ pseudoVariablesOfUseSide.add(value);
parentNodeNameOfUseSide = TraceDebuggerPlugin.isJapanese() ? "�t�B�[���h�Q�ƌ�:" : "after field get of:";
parentNodeNameOfUseSide += fa.getFieldName();
} else if (fromStatement instanceof ArrayAccess) {
@@ -214,8 +214,8 @@
String valueObjId = aa.getValueObjectId();
Variable array = new Variable(Variable.CONTAINER_VARIABLE_NAME, arrayClassName, arrayObjId, valueClassName, valueObjId, from, VariableType.USE_CONTAINER);
Variable value = new Variable(Variable.VALUE_VARIABLE_NAME, arrayClassName, arrayObjId, valueClassName, valueObjId, from, VariableType.USE_VALUE);
- specialVariablesOfUseSide.add(array);
- specialVariablesOfUseSide.add(value);
+ pseudoVariablesOfUseSide.add(array);
+ pseudoVariablesOfUseSide.add(value);
parentNodeNameOfUseSide = TraceDebuggerPlugin.isJapanese() ? "�z��v�f�Q�ƌ�:" : "after array get of:";
parentNodeNameOfUseSide += aa.getArrayClassName().replace(";", "") + "[" + aa.getIndex() + "]";
} else if (fromStatement instanceof MethodInvocation) {
@@ -229,8 +229,8 @@
String valueObjId = returnValue.getId();
Variable receiver = new Variable(Variable.RECEIVER_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, from, VariableType.USE_RECEIVER);
Variable returned = new Variable(Variable.RETURN_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, from, VariableType.USE_RETURN);
- specialVariablesOfUseSide.add(receiver);
- specialVariablesOfUseSide.add(returned);
+ pseudoVariablesOfUseSide.add(receiver);
+ pseudoVariablesOfUseSide.add(returned);
if (calledME.isConstructor()) {
parentNodeNameOfUseSide = TraceDebuggerPlugin.isJapanese() ? "�Ăяo���� �R���X�g���N�^:" : "after invocation of Constructor:";
parentNodeNameOfUseSide += calledME.getSignature();
@@ -253,8 +253,8 @@
String valueObjId = fu.getValueObjId();
Variable container = new Variable(Variable.CONTAINER_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, to, VariableType.DEF_CONTAINER);
Variable value = new Variable(Variable.VALUE_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, to, VariableType.DEF_VALUE);
- specialVariablesDefSide.add(container);
- specialVariablesDefSide.add(value);
+ pseudoVariablesDefSide.add(container);
+ pseudoVariablesDefSide.add(value);
parentNodeNameOfDefSide = TraceDebuggerPlugin.isJapanese() ? "�t�B�[���h����O:" : "before field set of:";
parentNodeNameOfDefSide += fu.getFieldName();
} else if (toStatement instanceof ArrayUpdate) {
@@ -265,8 +265,8 @@
String valueObjId = au.getValueObjectId();
Variable array = new Variable(Variable.CONTAINER_VARIABLE_NAME, arrayClassName, arrayObjId, valueClassName, valueObjId, to, VariableType.DEF_CONTAINER);
Variable value = new Variable(Variable.VALUE_VARIABLE_NAME, arrayClassName, arrayObjId, valueClassName, valueObjId, to, VariableType.DEF_VALUE);
- specialVariablesDefSide.add(array);
- specialVariablesDefSide.add(value);
+ pseudoVariablesDefSide.add(array);
+ pseudoVariablesDefSide.add(value);
parentNodeNameOfDefSide = TraceDebuggerPlugin.isJapanese() ? "�z��v�f����O:" : "before array set of:";
parentNodeNameOfDefSide += au.getArrayClassName().replace(";", "") + "[" + au.getIndex() + "]";
} else if (toStatement instanceof MethodInvocation) {
@@ -282,12 +282,12 @@
String containerClassName = calledME.getThisClassName();
String containerObjId = calledME.getThisObjId();
Variable receiver = new Variable(Variable.RECEIVER_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, to, VariableType.DEF_RECEIVER);
- specialVariablesDefSide.add(receiver);
+ pseudoVariablesDefSide.add(receiver);
for (ObjectReference obj : args) {
valueClassName = obj.getActualType();
valueObjId = obj.getId();
Variable arg = new Variable(Variable.ARG_VARIABLE_NAME, containerClassName, containerObjId, valueClassName, valueObjId, to, VariableType.DEF_ARG);
- specialVariablesDefSide.add(arg);
+ pseudoVariablesDefSide.add(arg);
}
if (calledME.isConstructor()) {
parentNodeNameOfDefSide = TraceDebuggerPlugin.isJapanese() ? "�Ăяo���O �R���X�g���N�^:" : "before invocation of Constructor:";
@@ -299,31 +299,31 @@
}
}
if (parentNodeNameOfDefSide != null) {
- setSpecialVariableNodes(parentNodeNameOfDefSide, specialVariablesDefSide);
+ setPseudoVariableNodes(parentNodeNameOfDefSide, pseudoVariablesDefSide);
}
if (parentNodeNameOfUseSide != null) {
- setSpecialVariableNodes(parentNodeNameOfUseSide, specialVariablesOfUseSide);
+ setPseudoVariableNodes(parentNodeNameOfUseSide, pseudoVariablesOfUseSide);
}
}
- private void setSpecialVariableNodes(String parentNodeName, List specialVariables) {
- MyTreeNode parentNode = new MyTreeNode(parentNodeName);
+ private void setPseudoVariableNodes(String parentNodeName, List pseudoVariables) {
+ ExtendedTreeNode parentNode = new ExtendedTreeNode(parentNodeName);
rootTreeNodes.add(0, parentNode);
- MyTreeNode[] children = new MyTreeNode[specialVariables.size()];
- for (int i = 0; i < specialVariables.size(); i++) {
- Variable variable = specialVariables.get(i);
+ ExtendedTreeNode[] children = new ExtendedTreeNode[pseudoVariables.size()];
+ for (int i = 0; i < pseudoVariables.size(); i++) {
+ Variable variable = pseudoVariables.get(i);
variable.createNextHierarchyState();
roots.add(0, variable);
- MyTreeNode variableNode = new MyTreeNode(variable);
+ ExtendedTreeNode variableNode = new ExtendedTreeNode(variable);
children[i] = variableNode;
variableNode.setParent(parentNode);
- createChildNodesOfSpecialVariableNode(variableNode);
+ createChildNodesOfPseudoVariableNode(variableNode);
}
parentNode.setChildren(children);
}
- private void createChildNodesOfSpecialVariableNode(MyTreeNode variableNode) {
- List childList = new ArrayList<>();
+ private void createChildNodesOfPseudoVariableNode(ExtendedTreeNode variableNode) {
+ List childList = new ArrayList<>();
variableNode.setChildList(childList);
Variable variable = (Variable)variableNode.getValue();
for (int i = 0; i < variable.getChildren().size(); i++) {
@@ -337,7 +337,7 @@
rootTreeNodes.clear();
}
- private void resetSpecialValues() {
+ private void resetPseudoValues() {
for (int i = roots.size() - 1; i >= 0; i--) {
Variable root = roots.get(i);
String variableName = root.getVariableName();
@@ -350,17 +350,17 @@
}
}
for (int i = rootTreeNodes.size() - 1; i >= 0; i--) {
- MyTreeNode node = rootTreeNodes.get(i);
+ ExtendedTreeNode node = rootTreeNodes.get(i);
if (node.getValue() instanceof String) {
rootTreeNodes.remove(i);
}
}
}
- private MyTreeNode getTreeNodeFor(Variable variable, List nodes) {
- for (MyTreeNode node : nodes) {
+ private ExtendedTreeNode getTreeNodeFor(Variable variable, List nodes) {
+ for (ExtendedTreeNode node : nodes) {
if (node.getValue().equals(variable)) return node;
- MyTreeNode deep = getTreeNodeFor(variable, node.getChildList());
+ ExtendedTreeNode deep = getTreeNodeFor(variable, node.getChildList());
if (deep != null) return deep;
}
return null;
diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java
index c60ee1e..72a64b1 100644
--- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java
+++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java
@@ -39,7 +39,7 @@
return extractedStructure;
}
- public DeltaMarkerManager extractDeltaForContainerToComponent(Variable variable) {
+ public DeltaInformation extractDeltaForContainerToComponent(Variable variable) {
String srcId = variable.getContainerId();
String srcClassName = variable.getContainerClassName();
String dstId = variable.getValueId();
@@ -60,10 +60,10 @@
MethodExecution creationCallTree = extractedStructure.getCreationCallTree();
MethodExecution coordinator = extractedStructure.getCoordinator();
TracePoint bottomPoint = findTracePoint(reference, creationCallTree, before.getStatement().getTimeStamp());
- return new DeltaMarkerManager(coordinator, bottomPoint, reference, aliasCollector);
+ return new DeltaInformation(coordinator, bottomPoint, reference, aliasCollector);
}
- public DeltaMarkerManager extractDeltaForThisToAnother(String thisId, String thisClassName, String anotherId, String anotherClassName, TracePoint before) {
+ public DeltaInformation extractDeltaForThisToAnother(String thisId, String thisClassName, String anotherId, String anotherClassName, TracePoint before) {
MethodExecution me = before.getMethodExecution();
Map references = me.getObjectReferences(anotherClassName);
ObjectReference objectReference = null;
@@ -83,7 +83,7 @@
extractedStructure = deltaExtractor.extract(tp, objectReference, aliasCollector);
MethodExecution coordinator = extractedStructure.getCoordinator();
Reference reference = new Reference(thisId, anotherId, thisClassName, anotherClassName);
- return new DeltaMarkerManager(coordinator, bottomPoint, reference, aliasCollector);
+ return new DeltaInformation(coordinator, bottomPoint, reference, aliasCollector);
}
private TracePoint findTracePoint(Reference reference, MethodExecution methodExecution, long beforeTime) {
diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaInformation.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaInformation.java
new file mode 100644
index 0000000..f85d2c8
--- /dev/null
+++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaInformation.java
@@ -0,0 +1,35 @@
+package org.ntlab.traceDebugger.analyzerProvider;
+
+import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution;
+import org.ntlab.traceAnalysisPlatform.tracer.trace.Reference;
+import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint;
+
+public class DeltaInformation {
+ private MethodExecution coordinator;
+ private TracePoint relatedPoint;
+ private Reference relatedPointReference;
+ private DeltaRelatedAliasCollector aliasCollector;
+
+ public DeltaInformation(MethodExecution coordinator, TracePoint relatedPoint, Reference relatedPointReference, DeltaRelatedAliasCollector aliasCollector) {
+ this.coordinator = coordinator;
+ this.relatedPoint = relatedPoint;
+ this.relatedPointReference = relatedPointReference;
+ this.aliasCollector = aliasCollector;
+ }
+
+ public MethodExecution getCoordinator() {
+ return coordinator;
+ }
+
+ public TracePoint getRelatedPoint() {
+ return relatedPoint;
+ }
+
+ public Reference getRelatedPointReference() {
+ return relatedPointReference;
+ }
+
+ public DeltaRelatedAliasCollector getAliasCollector() {
+ return aliasCollector;
+ }
+}
diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java
index 6a28e62..f3bb83f 100644
--- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java
+++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java
@@ -57,11 +57,21 @@
public static final String DELTA_MARKER_ATR_OBJECT_TYPE = "objectType";
public static final String DELTA_MARKER_ATR_ALIAS_TYPE = "aliasType";
- public DeltaMarkerManager(MethodExecution coordinator, TracePoint relatedPoint, Reference relatedPointReference, DeltaRelatedAliasCollector aliasCollector) {
- this.coordinator = coordinator;
- this.relatedPoint = relatedPoint;
- this.relatedPointReference = relatedPointReference;
- this.aliasCollector = aliasCollector;
+ public DeltaMarkerManager() {
+ }
+
+ public DeltaMarkerManager(DeltaInformation deltaInform) {
+ this.coordinator = deltaInform.getCoordinator();
+ this.relatedPoint = deltaInform.getRelatedPoint();
+ this.relatedPointReference = deltaInform.getRelatedPointReference();
+ this.aliasCollector = deltaInform.getAliasCollector();
+ }
+
+ public void setDeltaInformation(DeltaInformation deltaInform) {
+ this.coordinator = deltaInform.getCoordinator();
+ this.relatedPoint = deltaInform.getRelatedPoint();
+ this.relatedPointReference = deltaInform.getRelatedPointReference();
+ this.aliasCollector = deltaInform.getAliasCollector();
}
public Map> getMarkers() {