package org.ntlab.traceanalyzer;
import java.util.ArrayList;
import java.util.HashSet;
public class MarkedThread {
private String id;
private ArrayList<MarkedMethodExecution> methodExecutions;
private int uniqueMethodInvokedFrom = 0;
public MarkedThread(String id, ArrayList<MarkedMethodExecution> methodExecutions) {
this.id = id;
this.methodExecutions = methodExecutions;
}
public String getId() {
return id;
}
public ArrayList<MarkedMethodExecution> getChildren() {
return methodExecutions;
}
/**
* マーク固有のメソッドが呼び出されたかどうかを調べる
* @param commonMethodSignatures マーク外で呼び出された全メソッドのシグニチャ
*/
public void searchUniqueMethodInvocation(HashSet<String> commonMethodSignatures) {
if (uniqueMethodInvokedFrom > 0) return;
for (int i = 0; i < methodExecutions.size(); i++) {
int h = methodExecutions.get(i).searchUniqueMethodInvocation(commonMethodSignatures);
if (h > 0) uniqueMethodInvokedFrom = 1;
}
}
/**
* マーク固有のメソッド実行をすべて取得する
* @param unmarkedMethodSignatures マーク外で実行された全メソッドのシグニチャ
* @return このスレッド内のマーク固有の全メソッド実行
*/
public ArrayList<MarkedMethodExecution> getUniqueMethodExecutions(HashSet<String> unmarkedMethodSignatures) {
ArrayList<MarkedMethodExecution> uniqueMethodExecutions = new ArrayList<MarkedMethodExecution>();
for (int i = 0; i < methodExecutions.size(); i++) {
methodExecutions.get(i).getUniqueMethodExecutions(unmarkedMethodSignatures, uniqueMethodExecutions);
}
return null;
}
/**
* このスレッドからマーク固有のメソッドが呼び出されたか?
* @return 0: 呼び出されていない, 1: 呼び出された
*/
public int isUniqueMethodInvokedFrom() {
return uniqueMethodInvokedFrom;
}
}