/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.view.rest; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Response; import com.opengamma.engine.view.ViewProcess; import com.opengamma.financial.livedata.rest.DataLiveDataInjectorResource; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.rest.AbstractDataResource; /** * RESTful resource for a {@link ViewProcess}. */ public class DataViewProcessResource extends AbstractDataResource { private final ViewProcess _viewProcess; //CSOFF: just constants public static final String PATH_UNIQUE_ID = "id"; public static final String PATH_DEFINITION_ID = "definitionId"; public static final String PATH_DEFINITION = "definition"; public static final String PATH_STATE = "state"; public static final String PATH_LIVE_DATA_OVERRIDE_INJECTOR = "liveDataOverrideInjector"; //CSON: just constants /** * Creates the resource. * * @param viewProcess the underlying view process */ public DataViewProcessResource(ViewProcess viewProcess) { ArgumentChecker.notNull(viewProcess, "viewProcess"); _viewProcess = viewProcess; } //------------------------------------------------------------------------- @GET @Path(PATH_UNIQUE_ID) public Response getUniqueId() { return responseOkObject(_viewProcess.getUniqueId()); } @GET @Path(PATH_DEFINITION_ID) public Response getDefinitionName() { return responseOk(_viewProcess.getDefinitionId()); } @GET @Path(PATH_DEFINITION) public Response getLatestViewDefinition() { return responseOkObject(_viewProcess.getLatestViewDefinition()); } @GET @Path(PATH_STATE) public Response getState() { return responseOkObject(_viewProcess.getState()); } @Path(PATH_LIVE_DATA_OVERRIDE_INJECTOR) public DataLiveDataInjectorResource getLiveDataOverrideInjector() { return new DataLiveDataInjectorResource(_viewProcess.getLiveDataOverrideInjector()); } @DELETE public void shutdown() { _viewProcess.shutdown(); } }