/** * 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 java.net.URI; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import com.opengamma.engine.marketdata.NamedMarketDataSpecificationRepository; import com.opengamma.util.rest.AbstractDataResource; /** * RESTful resource for {@link NamedMarketDataSpecificationRepository} */ public class DataNamedMarketDataSpecificationRepositoryResource extends AbstractDataResource { private static final String PATH_NAMES = "names"; private static final String PATH_SPECIFICATION = "specification"; private final NamedMarketDataSpecificationRepository _repository; public DataNamedMarketDataSpecificationRepositoryResource(final NamedMarketDataSpecificationRepository namedMarketDataSpecificationRepository) { _repository = namedMarketDataSpecificationRepository; } @GET @Path(PATH_NAMES) public Response getProviderNames() { return responseOkObject(getNamedMarketDataSpecificationRepository().getNames()); } @GET @Path(PATH_SPECIFICATION + "/{name}") public Response getSpecification(@PathParam("name") final String name) { return responseOkObject(getNamedMarketDataSpecificationRepository().getSpecification(name)); } //------------------------------------------------------------------------- public static URI uriNames(final URI baseUri) { return UriBuilder.fromUri(baseUri).path(PATH_NAMES).build(); } public static URI uriSpecification(final URI baseUri, final String name) { return UriBuilder.fromUri(baseUri).path(PATH_SPECIFICATION).path(name).build(); } //------------------------------------------------------------------------- private NamedMarketDataSpecificationRepository getNamedMarketDataSpecificationRepository() { return _repository; } }