Show
Ignore:
Timestamp:
19-11-10 11:51:09 (3 years ago)
Author:
robert@…
Message:

The templateeditor is now capable of adding new items to a stringlist (that is in use), or adding new ontologies to a ontologyterm field that is in use. See ticket #74

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r1167 r1175  
    600600                        // iterate through ontologies and find term 
    601601                        field.ontologies.each() { ontology -> 
    602                                 def term = ontology.giveTermByName(value) 
    603  
    604                                 // found a term? 
    605                                 if (term) { 
    606                                         value = term 
    607                                 } 
     602                                // If we've found a term already, value.class == Term. In that case, 
     603                                // we shouldn't look further. Unfortunately, groovy doesn't support breaking out of 
     604                                // each(), so we check it on every iteration. 
     605                                if( value.class == String ) { 
     606                                        def term = ontology.giveTermByName(value) 
     607 
     608                                        // found a term? 
     609                                        if (term) { 
     610                                                value = term 
     611                                        } 
     612                                } 
     613                        } 
     614 
     615                        // If the term is not found in any ontology 
     616                        if( value.class == String ) { 
    608617                                // TODO: search ontology for the term online (it may still exist) and insert it into the Term cache 
    609618                                // if not found, throw exception 
    610                                 else { 
    611                                         throw new IllegalArgumentException("Ontology term not recognized (not in the GSCF ontology cache): ${value} when setting field ${fieldName}") 
    612                                 } 
     619                                throw new IllegalArgumentException("Ontology term not recognized (not in the GSCF ontology cache): ${value} when setting field ${fieldName}") 
    613620                        } 
    614621                }