Changeset 5511
- Timestamp:
- 08/01/14 12:58:24 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/rest/VirtualCollectionResource.java
r5510 r5511 2 2 3 3 import com.sun.jersey.api.core.InjectParam; 4 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionNotFoundException;5 4 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry; 6 5 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException; … … 10 9 import java.io.IOException; 11 10 import java.io.InputStream; 12 import java.io.OutputStream;13 11 import java.net.URI; 14 12 import java.security.Principal; 13 import java.util.List; 15 14 import javax.ws.rs.Consumes; 16 15 import javax.ws.rs.DELETE; … … 21 20 import javax.ws.rs.PathParam; 22 21 import javax.ws.rs.Produces; 23 import javax.ws.rs.WebApplicationException;24 22 import javax.ws.rs.core.Context; 25 23 import javax.ws.rs.core.HttpHeaders; 26 24 import javax.ws.rs.core.MediaType; 25 import javax.ws.rs.core.Request; 27 26 import javax.ws.rs.core.Response; 28 27 import javax.ws.rs.core.SecurityContext; 29 import javax.ws.rs.core.StreamingOutput;30 28 import javax.ws.rs.core.UriBuilder; 31 29 import javax.ws.rs.core.UriInfo; 30 import javax.ws.rs.core.Variant; 32 31 33 32 /** … … 91 90 * The virtual collection referenced by the URI will be retrieved 92 91 * 92 * @param request request object, to be injected by JAX-RS context 93 93 * @return A response containing a representation of the requested Virtual 94 94 * Collection. If the virtual collection is not found the appropriate HTTP … … 101 101 MediaType.APPLICATION_XML, 102 102 MediaType.APPLICATION_JSON}) 103 public Response getVirtualCollection( )103 public Response getVirtualCollection(@Context Request request) 104 104 throws VirtualCollectionRegistryException { 105 105 final VirtualCollection vc = registry.retrieveVirtualCollection(id); 106 // CMDI's should not be returned for non-public VC's, so check this... 107 if (!vc.isPublic() || (vc.getPersistentIdentifier() == null)) { 108 // exclude CMDI from the options and check if this is ok for request 109 final List<Variant> variants = Variant.mediaTypes( 110 MediaType.TEXT_XML_TYPE, 111 MediaType.APPLICATION_XML_TYPE, 112 MediaType.APPLICATION_JSON_TYPE).add().build(); 113 final Variant selectVariant = request.selectVariant(variants); 114 if (selectVariant != null) { 115 // alternative option is accepted, return this 116 return Response.ok(vc, selectVariant).build(); 117 } 118 // else proceed anyway, will probably fail on writing CMDI body 119 } 106 120 return Response.ok(vc).build(); 107 121 }
Note: See TracChangeset
for help on using the changeset viewer.