Ignore:
Timestamp:
Nov 19, 2010, 11:51:09 AM (6 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

File:
1 edited

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                }
Note: See TracChangeset for help on using the changeset viewer.