/**
* 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.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import com.opengamma.engine.view.cycle.ComputationCacheResponse;
import com.opengamma.engine.view.cycle.ComputationCycleQuery;
import com.opengamma.engine.view.cycle.ComputationResultsResponse;
import com.opengamma.engine.view.cycle.ViewCycle;
import com.opengamma.util.rest.AbstractDataResource;
/**
* RESTful resource for a {@link ViewCycle}
*/
public class DataViewCycleResource extends AbstractDataResource {
//CSOFF: just constants
public static final String PATH_NAME = "name";
public static final String PATH_UNIQUE_ID = "id";
public static final String PATH_VIEW_PROCESS_ID = "viewProcessId";
public static final String PATH_STATE = "state";
public static final String PATH_DURATION = "duration";
public static final String PATH_EXECUTION_OPTIONS = "executionOptions";
public static final String PATH_COMPILED_VIEW_DEFINITION = "compiledViewDefinition";
public static final String PATH_RESULT = "result";
public static final String PATH_QUERY_CACHES = "queryCaches";
public static final String PATH_QUERY_RESULTS = "queryResults";
//CSON: just constants
private final ViewCycle _cycle;
public DataViewCycleResource(ViewCycle cycle) {
_cycle = cycle;
}
@GET
@Path(PATH_NAME)
public Response getName() {
return responseOkObject(_cycle.getName());
}
@GET
@Path(PATH_UNIQUE_ID)
public Response getUniqueId() {
return responseOkObject(_cycle.getUniqueId());
}
@GET
@Path(PATH_VIEW_PROCESS_ID)
public Response getViewProcessId() {
return responseOkObject(_cycle.getViewProcessId());
}
@GET
@Path(PATH_STATE)
public Response getState() {
return responseOkObject(_cycle.getState());
}
@GET
@Path(PATH_DURATION)
public Response getDuration() {
return responseOkObject(_cycle.getDuration());
}
@GET
@Path(PATH_EXECUTION_OPTIONS)
public Response getExecutionOptions() {
return responseOkObject(_cycle.getExecutionOptions());
}
@Path(PATH_COMPILED_VIEW_DEFINITION)
public DataCompiledViewDefinitionResource getCompiledViewDefinition() {
return new DataCompiledViewDefinitionResource(_cycle.getCompiledViewDefinition());
}
@GET
@Path(PATH_RESULT)
public Response getResult() {
return responseOkObject(_cycle.getResultModel());
}
@POST
@Path(PATH_QUERY_CACHES)
public Response queryComputationCaches(ComputationCycleQuery query) {
ComputationCacheResponse response = _cycle.queryComputationCaches(query);
return responseOkObject(response);
}
@POST
@Path(PATH_QUERY_RESULTS)
public Response queryResults(ComputationCycleQuery query) {
ComputationResultsResponse response = _cycle.queryResults(query);
return responseOkObject(response);
}
}