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

edu.stanford.protege.webprotege.individuals.GetIndividualsActionHandler Maven / Gradle / Ivy

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

import edu.stanford.protege.webprotege.DataFactory;
import edu.stanford.protege.webprotege.access.AccessManager;
import edu.stanford.protege.webprotege.access.BuiltInAction;
import edu.stanford.protege.webprotege.common.Page;
import edu.stanford.protege.webprotege.common.PageRequest;
import edu.stanford.protege.webprotege.common.ProjectId;
import edu.stanford.protege.webprotege.dispatch.AbstractProjectActionHandler;
import edu.stanford.protege.webprotege.entity.EntityNode;
import edu.stanford.protege.webprotege.entity.EntityNodeRenderer;
import edu.stanford.protege.webprotege.entity.OWLClassData;
import edu.stanford.protege.webprotege.index.IndividualsIndex;
import edu.stanford.protege.webprotege.index.IndividualsQueryResult;
import edu.stanford.protege.webprotege.ipc.ExecutionContext;
import edu.stanford.protege.webprotege.renderer.RenderingManager;
import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLNamedIndividual;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.inject.Inject;
import java.util.Optional;

import static edu.stanford.protege.webprotege.access.BuiltInAction.VIEW_PROJECT;

/**
 * Author: Matthew Horridge
* Stanford University
* Bio-Medical Informatics Research Group
* Date: 12/09/2013 */ public class GetIndividualsActionHandler extends AbstractProjectActionHandler { private static final Logger logger = LoggerFactory.getLogger(GetIndividualsActionHandler.class); @Nonnull private final ProjectId projectId; @Nonnull private final RenderingManager renderingManager; @Nonnull private final EntityNodeRenderer entityNodeRenderer; @Nonnull private final IndividualsIndex individualsIndex; @Inject public GetIndividualsActionHandler(@Nonnull AccessManager accessManager, @Nonnull ProjectId projectId, @Nonnull RenderingManager renderingManager, @Nonnull EntityNodeRenderer entityNodeRenderer, @Nonnull IndividualsIndex individualsIndex) { super(accessManager); this.projectId = projectId; this.renderingManager = renderingManager; this.entityNodeRenderer = entityNodeRenderer; this.individualsIndex = individualsIndex; } @Nullable @Override protected BuiltInAction getRequiredExecutableBuiltInAction(GetIndividualsAction action) { return VIEW_PROJECT; } @Nonnull @Override public GetIndividualsResult execute(@Nonnull GetIndividualsAction action, @Nonnull ExecutionContext executionContext) { OWLClass type = action.type(); if(type == null) { type = DataFactory.getOWLThing(); } IndividualsQueryResult result; String filterString = action.searchString(); PageRequest pageRequest = action.pageRequest(); result = individualsIndex.getIndividuals(type, action.instanceRetrievalMode(), filterString, pageRequest); OWLClassData typeData = renderingManager.getClassData(type); logger.info("{} {} retrieved instances of {}", projectId, executionContext.userId(), type); Page pg = result.getIndividuals(); Page entityNodes = pg.transform(entityNodeRenderer::render); return new GetIndividualsResult(Optional.of(typeData), entityNodes); } @Nonnull @Override public Class getActionClass() { return GetIndividualsAction.class; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy