if(root_class.isInterface()){
continue;
}
OpenCLClass ocl_class = OpenCLScene.v().getOpenCLClass(root_class);
TreeNode tree_node = new TreeNode(root_class, ocl_class);
LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
queue.add(tree_node);
all_tree_nodes.add(tree_node);
while(queue.isEmpty() == false){
TreeNode curr = queue.removeFirst();
SootClass soot_class = curr.getSootClass();
int num = StringNumbers.v().addString(soot_class.getName());
Set<Integer> children = hgraph.getChildren(num);
for(Integer child : children){
String child_str = StringNumbers.v().getString(child);
SootClass child_class = Scene.v().getSootClass(child_str);
if(child_class.isInterface()){
continue;
}
if(dfs_string_types.contains(child_str) == false){
continue;
}
OpenCLClass ocl_class2 = OpenCLScene.v().getOpenCLClass(child_class);
TreeNode child_node = new TreeNode(child_class, ocl_class2);
curr.addChild(child_node);
queue.add(child_node);
}
}