package uk.ac.manchester.cs.factplusplusad;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Stream;
import org.semanticweb.owlapitools.decomposition.OntologyAtom;
/**
* atomical ontology structure
*/
class AOStructure {
List<OntologyAtom> atoms;
/**
* @return create a new atom and get a pointer to it
*/
OntologyAtom newAtom() {
OntologyAtom ret = new OntologyAtom();
ret.setId(atoms.size());
atoms.add(ret);
return ret;
}
/**
* reduce graph of the atoms in the structure
*/
void reduceGraph() {
Set<OntologyAtom> checked = new HashSet<>();
atoms.forEach(p -> p.getAllDepAtoms(checked));
}
Stream<OntologyAtom> begin() {
return atoms.stream();
}
/**
* @param i index
* @return RW atom by its index
*/
OntologyAtom get(int i) {
return atoms.get(i);
}
/**
* @return size of the structure
*/
int size() {
return atoms.size();
}
}