Changeset 1567


Ignore:
Timestamp:
03/14/14 11:54:48 (5 years ago)
Author:
philsmart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • raptor-client/trunk/src/main/java/uk/ac/cardiff/raptor/event/expansion/ResourceCategoryAttributeAssociationDefinition.java

    r1555 r1567  
    5151        @Override 
    5252        public boolean associate(final Event event) { 
    53  
     53                boolean stopAssociate = false; 
    5454                ResourceMetadata resourceMetadata = null; 
    5555                Object result = null; 
     
    6060                        } catch (IncorrectResultSizeDataAccessException e) { 
    6161                                log.error("Query for {} returned the wrong number of results: ", event.getResourceId(), e.getMessage()); 
     62                                stopAssociate = true; 
    6263                        } 
    6364                } 
    6465 
    65                 if (result != null && result instanceof ResourceMetadata) { 
    66                         resourceMetadata = (ResourceMetadata) result; 
    67                         if (resourceMetadata.isExternal()) { 
    68                                 event.setResourceIdCategory(2); 
    69                         } else if (resourceMetadata.isInternal()) { 
    70                                 event.setResourceIdCategory(1); 
    71                         } 
    72                         return true; 
    73                 } else { 
    74                         // only set new resource information if has resource id. However, 
    75                         // must set default resources category anyway 
    76                         if (event.getResourceId() != null) { 
    77                                 ResourceMetadata resourceNew = new ResourceMetadata(); 
    78                                 resourceNew.setExternal(true); 
    79                                 resourceNew.setInternal(false); 
    80                                 resourceNew.setResourceId(event.getResourceId()); 
    81                                 // set event to default resource category, then save this 
    82                                 // resourceId. 
    83                                 event.setResourceIdCategory(2); 
    84                                 try { 
    85                                         dataConnection.save(resourceNew); 
    86                                 } catch (DataAccessException e) { 
    87                                         log.error("Could not save new resource metadata {}", e.getMessage()); 
    88                                         return false; 
     66                if (!stopAssociate) { 
     67                        if (result != null && result instanceof ResourceMetadata) { 
     68                                resourceMetadata = (ResourceMetadata) result; 
     69                                if (resourceMetadata.isExternal()) { 
     70                                        event.setResourceIdCategory(2); 
     71                                } else if (resourceMetadata.isInternal()) { 
     72                                        event.setResourceIdCategory(1); 
    8973                                } 
    9074                                return true; 
    9175                        } else { 
    92                                 event.setResourceIdCategory(2); 
    93                                 return false; 
     76                                // only set new resource information if has resource id. 
     77                                // However, 
     78                                // must set default resources category anyway 
     79                                if (event.getResourceId() != null) { 
     80                                        ResourceMetadata resourceNew = new ResourceMetadata(); 
     81                                        resourceNew.setExternal(true); 
     82                                        resourceNew.setInternal(false); 
     83                                        resourceNew.setResourceId(event.getResourceId()); 
     84                                        // set event to default resource category, then save this 
     85                                        // resourceId. 
     86                                        event.setResourceIdCategory(2); 
     87                                        try { 
     88                                                dataConnection.save(resourceNew); 
     89                                        } catch (DataAccessException e) { 
     90                                                log.error("Could not save new resource metadata {}", e.getMessage()); 
     91                                                return false; 
     92                                        } 
     93                                        return true; 
     94                                } else { 
     95                                        event.setResourceIdCategory(2); 
     96                                        return false; 
     97                                } 
    9498                        } 
     99                }else{ 
     100                        return false; 
    95101                } 
    96102 
Note: See TracChangeset for help on using the changeset viewer.