Ignore:
Timestamp:
May 12, 2010, 12:12:33 PM (9 years ago)
Author:
duh
Message:
  • moved term / ontology setter to TemplateEntity? for transparent handling of ontology fields
File:
1 edited

Legend:

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

    r413 r414  
    320320         */
    321321        def setFieldValue(String fieldName, value) {
    322 
     322                // get the template field
    323323                TemplateField field = getField(this.giveFields(),fieldName)
    324324
     
    332332                }
    333333
    334                 // Convenience setter for dates: handle string values for date fields
     334                // Magic setter for dates: handle string values for date fields
    335335                if (field.type == TemplateFieldType.DATE && value && value.class == String) {
    336336                        // a string was given, attempt to transform it into a date instance
     
    351351                }
    352352
     353                // Magic setter for ontology terms: handle string values
     354                if (field.type == TemplateFieldType.ONTOLOGYTERM && value && value.class == String) {
     355                        // iterate through ontologies and find term
     356                        field.ontologies.each() { ontology ->
     357                                def term = ontology.giveTermByName(value)
     358
     359                                // found a term?
     360                                if (term) {
     361                                        value = term
     362                                }
     363                        }
     364                }
     365
    353366                // Set the field value
    354367                if (isDomainField(field)) {
    355                         if (!value) {
     368                        // got a value?
     369                        if (value) {
     370                                println "setting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "] ([" + value.toString() + "] of type [" + value.class + "])"
     371
     372                                // set value
     373                                this[field.name] = value
     374                        } else {
    356375                                println "removing [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "]"
    357376
    358377                                // remove value
    359378                                this[field.name] = null
    360                         } else {
    361                                 println "setting [" + ((super) ? super.class : '??') + "] domain field: [" + fieldName + "] ([" + value.toString() + "] of type [" + value.class + "])"
    362 
    363                                 // set value
    364                                 this[field.name] = value
    365379                        }
    366380                } else {
     
    386400        /**
    387401         * Check if a given field is a domain field
    388          * @param field
     402         * @param TemplateField         field instance
    389403         * @return boolean
    390404         */
     
    393407        }
    394408
    395         boolean isDomainField(String fieldName) {
     409        /**
     410         * Check if a given field is a domain field
     411         * @param String        field name
     412         * @return boolean
     413         */     boolean isDomainField(String fieldName) {
    396414                return this.giveDomainFields()*.name.contains(fieldName)
    397415        }
Note: See TracChangeset for help on using the changeset viewer.