All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.stanford.protege.webprotege.persistence.OWLEntityReadConverter Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.persistence;

import com.mongodb.DBObject;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLDataFactory;
import org.semanticweb.owlapi.model.OWLEntity;
import uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 27 Jul 16
 */
public class OWLEntityReadConverter implements Converter {

    private final OWLDataFactory dataFactory = new OWLDataFactoryImpl();

    @Override
    public OWLEntity convert(DBObject object) {
        Object typeObject = object.get("type");
        if(typeObject == null) {
            throw new IllegalArgumentException("Missing type property value");
        }
        Object iriObject = object.get("iri");
        if(iriObject == null) {
            throw new IllegalArgumentException("Missing iri property value");
        }

        String typeString = typeObject.toString();
        IRI iri = IRI.create(iriObject.toString());
        switch (typeString) {
            case "Class":
                return dataFactory.getOWLClass(iri);
            case "ObjectProperty":
                return dataFactory.getOWLObjectProperty(iri);
            case "DataProperty":
                return dataFactory.getOWLDataProperty(iri);
            case "AnnotationProperty":
                return dataFactory.getOWLAnnotationProperty(iri);
            case "NamedIndividual":
                return dataFactory.getOWLNamedIndividual(iri);
            case "Datatype":
                return dataFactory.getOWLDatatype(iri);
            default:
                throw new RuntimeException("Unknown entity type");
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy