package org.mindswap.swoop.utils.change; import org.semanticweb.owl.model.OWLClass; import org.semanticweb.owl.model.OWLDescription; import org.semanticweb.owl.model.OWLException; import org.semanticweb.owl.model.OWLOntology; import org.semanticweb.owl.model.change.ChangeVisitor; import org.semanticweb.owl.model.change.OntologyChange; /** * @author Aditya Kalyanpur * * New convenient type of Ontology Change object that is used to add/remove * single intersection/union elements. It is a composite change that consists * of two atomic changes: * 1. Remove existing Intersection/Union set * 2. Add new Intersection/Union set plus/minus the element */ public class BooleanElementChange extends OntologyChange { private OWLOntology ontology; private OWLClass cla; private OWLDescription desc; private Class type; private String changeType; public BooleanElementChange(Class type, String changeType, OWLOntology ont, OWLClass cla, OWLDescription desc, OntologyChange cause) { super (ont, cause); this.type = type; this.ontology = ont; this.cla = cla; this.desc = desc; this.changeType = changeType; } public OWLClass getOWLClass() { // class that has boolean set return cla; } public OWLDescription getOWLDescription() { // element to be added/removed to/from boolean set return desc; } public Class getType() { // type of boolean set - OWLAnd or OWLOr or OWLNot return type; } public String getChangeType() { // type of change "Add" or "Remove" return changeType; } public void accept(ChangeVisitor visitor) throws OWLException { /** we don't write an accept visitor for this, * instead handle it separately while applying changes * inside SwoopModel */ } }