package org.skyscreamer.yoga.jaxrs.resource; import javax.inject.Inject; import javax.inject.Singleton; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import org.skyscreamer.yoga.metadata.MetaDataRegistry; import org.skyscreamer.yoga.metadata.TypeMetaData; @Singleton @Path(MetaDataController.ROOT) public class MetaDataController { public static final String ROOT = "/metadata/"; @Inject MetaDataRegistry _metaDataRegistry; @Context HttpServletRequest request; public MetaDataController() { } public MetaDataController( MetaDataRegistry _metaDataRegistry ) { this._metaDataRegistry = _metaDataRegistry; } public void setMetaDataRegistry( MetaDataRegistry metaDataRegistry ) { this._metaDataRegistry = metaDataRegistry; } @GET @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Path("{type}") public TypeMetaData getTypeMetaData( @PathParam("type") String type ) { String uri = request.getRequestURI(); String parts[] = uri.split( "\\." ); return _metaDataRegistry.getMetaData( type, parts[parts.length - 1] ); } }