Package edu.stanford.bmir.protege.web.server.individuals

Source Code of edu.stanford.bmir.protege.web.server.individuals.GetIndividualsActionHandler

package edu.stanford.bmir.protege.web.server.individuals;

import edu.stanford.bmir.protege.web.server.dispatch.AbstractHasProjectActionHandler;
import edu.stanford.bmir.protege.web.server.dispatch.ExecutionContext;
import edu.stanford.bmir.protege.web.server.dispatch.RequestContext;
import edu.stanford.bmir.protege.web.server.dispatch.RequestValidator;
import edu.stanford.bmir.protege.web.server.dispatch.validators.NullValidator;
import edu.stanford.bmir.protege.web.server.owlapi.OWLAPIProject;
import edu.stanford.bmir.protege.web.server.pagination.Pager;
import edu.stanford.bmir.protege.web.shared.entity.OWLNamedIndividualData;
import edu.stanford.bmir.protege.web.shared.individualslist.GetIndividualsAction;
import edu.stanford.bmir.protege.web.shared.individualslist.GetIndividualsResult;
import edu.stanford.bmir.protege.web.shared.pagination.Page;
import edu.stanford.bmir.protege.web.shared.pagination.PageRequest;
import org.semanticweb.owlapi.model.OWLClassAssertionAxiom;
import org.semanticweb.owlapi.model.OWLIndividual;
import org.semanticweb.owlapi.model.OWLNamedIndividual;

import java.util.*;

/**
* Author: Matthew Horridge<br>
* Stanford University<br>
* Bio-Medical Informatics Research Group<br>
* Date: 12/09/2013
*/
public class GetIndividualsActionHandler extends AbstractHasProjectActionHandler<GetIndividualsAction, GetIndividualsResult> {

    @Override
    protected RequestValidator<GetIndividualsAction> getAdditionalRequestValidator(GetIndividualsAction action, RequestContext requestContext) {
        return NullValidator.get();
    }

    @Override
    protected GetIndividualsResult execute(GetIndividualsAction action, OWLAPIProject project, ExecutionContext executionContext) {
        List<OWLNamedIndividualData> individualsData = new ArrayList<OWLNamedIndividualData>();
        if(action.getType().isOWLThing()) {
            Set<OWLNamedIndividual> individualsInSignature = project.getRootOntology().getIndividualsInSignature(true);
            for(OWLNamedIndividual individual : individualsInSignature) {
                individualsData.add(project.getRenderingManager().getRendering(individual));
            }
        }
        else {
            for(OWLClassAssertionAxiom ax : project.getRootOntology().getClassAssertionAxioms(action.getType())) {
                OWLIndividual individual = ax.getIndividual();
                if (individual.isNamed()) {
                    individualsData.add(project.getRenderingManager().getRendering(individual.asOWLNamedIndividual()));
                }
            }
        }
        Collections.sort(individualsData, new Comparator<OWLNamedIndividualData>() {
            @Override
            public int compare(OWLNamedIndividualData owlNamedIndividualData, OWLNamedIndividualData owlNamedIndividualData2) {
                return owlNamedIndividualData.getBrowserText().compareTo(owlNamedIndividualData2.getBrowserText());
            }
        });
        PageRequest pageRequest = action.getPageRequest();
        Pager<OWLNamedIndividualData> pager = Pager.getPagerForPageSize(individualsData, pageRequest.getPageSize());
        Page<OWLNamedIndividualData> page = pager.getPage(pageRequest.getPageNumber());
        return new GetIndividualsResult(page);
    }

    @Override
    public Class<GetIndividualsAction> getActionClass() {
        return GetIndividualsAction.class;
    }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.server.individuals.GetIndividualsActionHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.