Changeset 235
- Timestamp:
- 03/17/10 10:15:52 (14 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/VirtualCollectionNotFoundException.java
r215 r235 9 9 } 10 10 11 public VirtualCollectionNotFoundException(String uuid) { 12 super("virtual collection with UUID " + uuid + " was not found"); 13 } 14 11 15 } // class VirtualCollectionNotFoundException -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/VirtualCollectionRegistry.java
r234 r235 214 214 new Long(id)); 215 215 em.getTransaction().commit(); 216 if (vc == null) {217 throw new VirtualCollectionNotFoundException(id);218 }219 216 return vc; 220 } catch (VirtualCollectionRegistryException e) { 221 throw e; 217 } catch (NoResultException e) { 218 throw new VirtualCollectionNotFoundException(id); 219 } catch (Exception e) { 220 logger.log(Level.SEVERE, 221 "error while retrieving virtual collection", e); 222 throw new VirtualCollectionRegistryException( 223 "error while retrieving virtual collection", e); 224 } 225 } 226 227 public VirtualCollection retrieveVirtualCollection(String uuid) 228 throws VirtualCollectionRegistryException { 229 if (uuid == null) { 230 throw new NullPointerException("uuid == null"); 231 } 232 uuid = uuid.trim(); 233 if (uuid.isEmpty()) { 234 throw new IllegalArgumentException("uuid is empty"); 235 } 236 237 try { 238 EntityManager em = datastore.getEntityManager(); 239 em.getTransaction().begin(); 240 TypedQuery<VirtualCollection> q = 241 em.createNamedQuery("VirtualCollection.byUUID", 242 VirtualCollection.class); 243 q.setParameter("uuid", uuid); 244 VirtualCollection vc = q.getSingleResult(); 245 em.getTransaction().commit(); 246 return vc; 247 } catch (NoResultException e) { 248 throw new VirtualCollectionNotFoundException(uuid); 222 249 } catch (Exception e) { 223 250 logger.log(Level.SEVERE, -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/model/VirtualCollection.java
r234 r235 46 46 @Table(name = "virtual_collection") 47 47 @NamedQueries({ 48 @NamedQuery(name = "VirtualCollection.byUUID", 49 query = "SELECT c FROM VirtualCollection c " + 50 "WHERE c.uuid = :uuid"), 48 51 @NamedQuery(name = "VirtualCollection.findAll", 49 52 query = "SELECT c FROM VirtualCollection c"), -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/rest/VirtualCollectionRegistryRestService.java
r234 r235 6 6 import java.net.URI; 7 7 import java.security.Principal; 8 import java.util.UUID; 8 9 9 10 import javax.ws.rs.Consumes; … … 210 211 @Path("/clarin-virtualcollection/{id}") 211 212 @Produces({ MediaType.TEXT_XML, MediaType.APPLICATION_XML }) 212 public Response getClarinVirtualCollection( 213 @PathParam("id") long id) throws VirtualCollectionRegistryException { 214 VirtualCollection vc = registry.retrieveVirtualCollection(id); 213 public Response getClarinVirtualCollection(@PathParam("id") String id) 214 throws VirtualCollectionRegistryException { 215 if (id == null) { 216 /* 217 * null indicated client error, so use IllegalArgumentException 218 * here, so we will signal bad request error to client 219 */ 220 throw new IllegalArgumentException("id path argument is missing"); 221 } 222 VirtualCollection vc = null; 223 try { 224 UUID vc_id = UUID.fromString(id.trim()); 225 vc = registry.retrieveVirtualCollection(vc_id.toString()); 226 } catch (IllegalArgumentException e) { 227 try { 228 long vc_id = Long.parseLong(id); 229 vc = registry.retrieveVirtualCollection(vc_id); 230 } catch (NumberFormatException e1) { 231 throw new IllegalArgumentException("invalid id: " + 232 "not nor a number or a uuid"); 233 } 234 } 235 236 // sanity check 237 if (vc == null) { 238 throw new AssertionError("vc == null"); 239 } 240 215 241 final ClarinVirtualCollection cvc = new ClarinVirtualCollection(vc); 216 242 StreamingOutput writer = new StreamingOutput() {
Note: See TracChangeset
for help on using the changeset viewer.