package com.emf4sw.owl.impl.notify; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.impl.AdapterImpl; import org.eclipse.emf.ecore.EObject; import com.emf4sw.owl.OWLClass; import com.emf4sw.owl.OWLPackage; import com.emf4sw.owl.Ontology; import com.emf4sw.owl.vocabulary.OWL; import com.emf4sw.rdf.Node; import com.emf4sw.rdf.vocabulary.RDFS; public class OWLClassTripleAdapter extends AdapterImpl { public OWLClassTripleAdapter() { } @Override public void notifyChanged(Notification msg) { if (msg.getNotifier() instanceof EObject) { Ontology ontology = (Ontology) ((EObject)msg.getNotifier()).eContainer(); switch (msg.getFeatureID(OWLClass.class)) { case OWLPackage.OWL_CLASS__SUB_CLASS_OF: addSubClassOfTriple(msg, ontology); break; case OWLPackage.OWL_CLASS__EQUIVALENT_CLASSES: addEquivqlentClassTriple(msg, ontology); break; case OWLPackage.OWL_CLASS__DISJOINT_CLASSES: addDisjointClassTriple(msg, ontology); break; default: break; } } super.notifyChanged(msg); } private void addDisjointClassTriple(Notification msg, Ontology ontology) { final Object value = msg.getNewValue(); ontology.addTriple((Node) msg.getNotifier(), ontology.getProperty(OWL.disjointWith), (Node)value); } private void addEquivqlentClassTriple(Notification msg, Ontology ontology) { final Object value = msg.getNewValue(); ontology.addTriple((Node) msg.getNotifier(), ontology.getProperty(OWL.equivalentClass), (Node)value); } private void addSubClassOfTriple(Notification msg, Ontology ontology) { final Object value = msg.getNewValue(); ontology.addTriple((Node) msg.getNotifier(), ontology.getProperty(RDFS.subClassOf), (Node)value); } }