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

Source Code of edu.stanford.bmir.protege.web.server.events.GetProjectEventsActionHandler

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

import com.google.common.base.Optional;
import edu.stanford.bmir.protege.web.server.dispatch.ActionHandler;
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.logging.WebProtegeLogger;
import edu.stanford.bmir.protege.web.server.logging.WebProtegeLoggerManager;
import edu.stanford.bmir.protege.web.server.owlapi.OWLAPIProject;
import edu.stanford.bmir.protege.web.server.owlapi.OWLAPIProjectManager;
import edu.stanford.bmir.protege.web.shared.event.GetProjectEventsAction;
import edu.stanford.bmir.protege.web.shared.event.GetProjectEventsResult;
import edu.stanford.bmir.protege.web.shared.event.ProjectEvent;
import edu.stanford.bmir.protege.web.shared.events.EventList;
import edu.stanford.bmir.protege.web.shared.events.EventTag;
import edu.stanford.bmir.protege.web.shared.events.ProjectEventList;
import edu.stanford.bmir.protege.web.shared.project.ProjectId;

/**
* Author: Matthew Horridge<br>
* Stanford University<br>
* Bio-Medical Informatics Research Group<br>
* Date: 20/03/2013
*/
public class GetProjectEventsActionHandler implements ActionHandler<GetProjectEventsAction, GetProjectEventsResult> {

    public static final WebProtegeLogger LOGGER = WebProtegeLoggerManager.get(GetProjectEventsActionHandler.class);

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

    @Override
    public RequestValidator<GetProjectEventsAction> getRequestValidator(GetProjectEventsAction action, RequestContext requestContext) {
        return new NullValidator<GetProjectEventsAction, GetProjectEventsResult>();
    }

    @Override
    public GetProjectEventsResult execute(GetProjectEventsAction action, ExecutionContext executionContext) {
        OWLAPIProjectManager projectManager = OWLAPIProjectManager.getProjectManager();
        final EventTag sinceTag = action.getSinceTag();
        final ProjectId projectId = action.getProjectId();
        if(!projectManager.isActive(projectId)) {
            return getEmptyResult(projectId, sinceTag);
        }
        Optional<OWLAPIProject> project = projectManager.getProjectIfActive(projectId);
        if(!project.isPresent()) {
            return getEmptyResult(projectId, sinceTag);
        }
        // TODO: FIX THIS.  NEEDS TO GO ELSEWHERE
//        project.getProjectAccessManager().logAccessForUser(action.getUserId());
        EventManager<ProjectEvent<?>> eventManager = project.get().getEventManager();
        EventList<ProjectEvent<?>> eventList = eventManager.getEventsFromTag(sinceTag);
        ProjectEventList projectEventList = ProjectEventList.builder(eventList.getStartTag(), projectId, eventList.getEndTag()).addEvents(eventList.getEvents()).build();
        return  new GetProjectEventsResult(projectEventList);
    }

    private static GetProjectEventsResult getEmptyResult(ProjectId projectId, EventTag sinceTag) {
        return new GetProjectEventsResult(ProjectEventList.builder(sinceTag, projectId, sinceTag).build());
    }
}
TOP

Related Classes of edu.stanford.bmir.protege.web.server.events.GetProjectEventsActionHandler

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.