public static TreeNode standardTraverseTree(OWLNamedClass cl, List stack, TreeNode node, boolean applyfilter) {
Collection<RDFIndividual> instances = cl.getInstances(false);
//adding a new category - isn't backed by any data, not even name??
TreeNode childClass = new TreeNodeImpl();
String instanceCountText = instances.size()>0 ? " ("+instances.size()+")" : "";
childClass.setData(new DummyOntologyProperty(cl.getLocalName()+instanceCountText));
//addChild(key, nodeImpl
node.addChild(cl.getURI(),childClass);
if (instances.size() > 0) {
for (Iterator<RDFIndividual> jt = instances.iterator(); jt.hasNext();) {
try{
RDFIndividual individual = (RDFIndividual)jt.next();
//OWLIndividual individual = (OWLIndividual) jt.next();
TreeNode child = new TreeNodeImpl();
OntologyProperty ontologyProperty = new OntologyPropertyImpl(individual);
boolean bMatchesFilter = true;
if(applyfilter){
boolean b1 = ontologyProperty.getName().toLowerCase().contains(filterTreeString.toLowerCase());
boolean b2 = ontologyProperty.getHumanReadableName().toLowerCase().contains(filterTreeString.toLowerCase());
bMatchesFilter = b1||b2;
}
if(bMatchesFilter){
child.setData(ontologyProperty);
childClass.addChild(ontologyProperty.getURI(), child);
}
}catch(ClassCastException e){
log.debug("Shouldn't happen any more: Filtering out RDFIndividual");
}