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

edu.stanford.protege.webprotege.dispatch.handlers.CreateDataPropertiesActionHandler Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.dispatch.handlers;

import edu.stanford.protege.webprotege.access.AccessManager;
import edu.stanford.protege.webprotege.access.BuiltInAction;
import edu.stanford.protege.webprotege.change.ChangeApplicationResult;
import edu.stanford.protege.webprotege.change.ChangeListGenerator;
import edu.stanford.protege.webprotege.change.CreateDataPropertiesChangeGeneratorFactory;
import edu.stanford.protege.webprotege.change.HasApplyChanges;
import edu.stanford.protege.webprotege.common.ProjectId;
import edu.stanford.protege.webprotege.dispatch.AbstractProjectChangeHandler;
import edu.stanford.protege.webprotege.entity.CreateDataPropertiesAction;
import edu.stanford.protege.webprotege.entity.CreateDataPropertiesResult;
import edu.stanford.protege.webprotege.entity.EntityNodeRenderer;
import edu.stanford.protege.webprotege.ipc.ExecutionContext;
import org.semanticweb.owlapi.model.OWLDataProperty;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.ImmutableSet.toImmutableSet;
import static edu.stanford.protege.webprotege.access.BuiltInAction.CREATE_PROPERTY;

/**
 * Author: Matthew Horridge
Stanford University
Bio-Medical Informatics Research Group
Date: 25/03/2013 */ public class CreateDataPropertiesActionHandler extends AbstractProjectChangeHandler, CreateDataPropertiesAction, CreateDataPropertiesResult> { @Nonnull private final ProjectId projectId; @Nonnull private final CreateDataPropertiesChangeGeneratorFactory changeGeneratorFactory; @Nonnull private final EntityNodeRenderer entityNodeRenderer; @Inject public CreateDataPropertiesActionHandler(@Nonnull AccessManager accessManager, @Nonnull HasApplyChanges applyChanges, @Nonnull ProjectId projectId, @Nonnull CreateDataPropertiesChangeGeneratorFactory changeGeneratorFactory, @Nonnull EntityNodeRenderer entityNodeRenderer) { super(accessManager, applyChanges); this.projectId = checkNotNull(projectId); this.changeGeneratorFactory = checkNotNull(changeGeneratorFactory); this.entityNodeRenderer = checkNotNull(entityNodeRenderer); } @Override protected ChangeListGenerator> getChangeListGenerator(CreateDataPropertiesAction action, ExecutionContext executionContext) { return changeGeneratorFactory.create(action.sourceText(), action.langTag(), action.parents(), action.changeRequestId()); } @Override protected CreateDataPropertiesResult createActionResult(ChangeApplicationResult> changeApplicationResult, CreateDataPropertiesAction action, ExecutionContext executionContext) { Map map = new HashMap<>(); Set properties = changeApplicationResult.getSubject(); return new CreateDataPropertiesResult(projectId, properties.stream() .map(entityNodeRenderer::render) .collect(toImmutableSet())); } @Nullable @Override protected BuiltInAction getRequiredExecutableBuiltInAction(CreateDataPropertiesAction action) { return CREATE_PROPERTY; } @Nonnull @Override public Class getActionClass() { return CreateDataPropertiesAction.class; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy