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

edu.stanford.protege.webprotege.mansyntax.render.AbstractOWLAxiomItemSectionRenderer Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.mansyntax.render;

import com.google.common.collect.Lists;
import org.semanticweb.owlapi.model.OWLAnnotation;
import org.semanticweb.owlapi.model.OWLAxiom;
import org.semanticweb.owlapi.model.OWLObject;
import org.semanticweb.owlapi.model.OWLOntologyID;
import org.semanticweb.owlapi.util.ShortFormProvider;

import java.util.*;

/**
 * @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 24/02/2014
 */
public abstract class AbstractOWLAxiomItemSectionRenderer extends AbstractSectionRenderer {


    @Override
    public final Formatting getSectionFormatting() {
        return Formatting.LINE_PER_ITEM;
    }

    @Override
    public final List getItemsInOntology(E subject, OWLOntologyID ontologyId, ShortFormProvider shortFormProvider, Comparator comparator) {
        return sort(getAxiomsInOntology(subject, ontologyId), shortFormProvider);
    }

    protected abstract Set getAxiomsInOntology(E subject, OWLOntologyID ontologyId);

    @Override
    public List getAnnotations(I item) {
        return Lists.newArrayList(item.getAnnotations());
    }


    protected List sort(Set items, ShortFormProvider shortFormProvider) {
        ArrayList result = Lists.newArrayList(items);
        Collections.sort(result);
        return result;
    }

}