}
private void processNodeField(TreeNode node, OpenCLField field, boolean ref_field, CompositeField composite){
SootClass soot_class = node.getSootClass();
SootField soot_field = field.getSootField();
OpenCLField new_field = new OpenCLField(soot_field, soot_class);
if(isCloned(soot_class, soot_field)){
new_field.setClone(field);
} else {
soot_field = soot_class.getFieldByName(soot_field.getName());
new_field = new OpenCLField(soot_field, soot_class);
field = new_field;
}
String hash = soot_field.toString();
if(m_processNodeVisited.contains(hash) == false){
m_processNodeVisited.add(hash);
if(ref_field){
composite.addRefField(new_field, soot_class);
} else {
composite.addNonRefField(new_field, soot_class);
}
}
if(soot_field.isPrivate() == false){
for(TreeNode child : node.getChildren()){
processNodeField(child, field, ref_field, composite);
}
}
}