Changeset 1284


Ignore:
Timestamp:
Dec 20, 2010, 3:48:26 PM (7 years ago)
Author:
work@…
Message:
  • resolves issue #241
File:
1 edited

Legend:

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

    r1264 r1284  
    2222
    2323        // Maps for storing the different template field values
    24         Map templateStringFields        = [:]
    25         Map templateTextFields          = [:]
    26         Map templateStringListFields= [:]
    27         Map templateDoubleFields        = [:]
    28         Map templateDateFields          = [:]
    29         Map templateBooleanFields       = [:]
    30         Map templateTemplateFields      = [:]
    31         Map templateModuleFields        = [:]
    32         Map templateLongFields          = [:]
     24        Map templateStringFields                = [:]
     25        Map templateTextFields                  = [:]
     26        Map templateStringListFields    = [:]
     27        Map templateDoubleFields                = [:]
     28        Map templateDateFields                  = [:]
     29        Map templateBooleanFields               = [:]
     30        Map templateTemplateFields              = [:]
     31        Map templateModuleFields                = [:]
     32        Map templateLongFields                  = [:]
    3333
    3434        // N.B. If you try to set Long.MIN_VALUE for a reltime field, an error will occur
    3535        // However, this will never occur in practice: this value represents 3 bilion centuries
    36         Map templateRelTimeFields       = [:] // Contains relative times in seconds
    37         Map templateFileFields          = [:] // Contains filenames
    38         Map templateTermFields          = [:]
     36        Map templateRelTimeFields               = [:] // Contains relative times in seconds
     37        Map templateFileFields                  = [:] // Contains filenames
     38        Map templateTermFields                  = [:]
    3939
    4040        // define relationships
    4141        static hasMany = [
    42                 templateStringFields    : String,
    43                 templateTextFields              : String,
    44                 templateStringListFields: TemplateFieldListItem,
    45                 templateDoubleFields    : double,
    46                 templateDateFields              : Date,
    47                 templateTermFields              : Term,
    48                 templateRelTimeFields   : long,
    49                 templateFileFields              : String,
    50                 templateBooleanFields   : boolean,
    51                 templateTemplateFields  : Template,
    52                 templateModuleFields    : AssayModule,
    53                 templateLongFields              : long,
    54                 systemFields                    : TemplateField
     42                templateStringFields            : String,
     43                templateTextFields                      : String,
     44                templateStringListFields        : TemplateFieldListItem,
     45                templateDoubleFields            : double,
     46                templateDateFields                      : Date,
     47                templateTermFields                      : Term,
     48                templateRelTimeFields           : long,
     49                templateFileFields                      : String,
     50                templateBooleanFields           : boolean,
     51                templateTemplateFields          : Template,
     52                templateModuleFields            : AssayModule,
     53                templateLongFields                      : long,
     54                systemFields                            : TemplateField
    5555        ]
    5656
     
    5858        // so we can validate is the required
    5959        // template fields are set
    60         boolean requiredFieldsSet       = false
    61         Set requiredFields                      = []
     60        Template requiredFieldsTemplate = null
     61        Set requiredFields                              = []
    6262
    6363        /**
     
    7474         */
    7575        final Set getRequiredFields() {
    76                 if (template) {
    77                         // template is set, check if required fields
    78                         // have already been fetched
    79                         if (!requiredFieldsSet) {
    80                                 // no, fetch required fields
    81                                 requiredFields          = template.getRequiredFields()
    82                                 requiredFieldsSet       = true
    83                         }
    84 
    85                         // return the required fields
    86                         return requiredFields
    87                 } else {
    88                         // template is not yet set, return
    89                         // an empty set
    90                         return []
    91                 }
    92         }
    93 
    94         // overload transients from Identity
    95         // and append requiredFields vars
    96         static transients                       = [ "identifier", "iterator", "maximumIdentity", "requiredFieldsSet", "requiredFields" ]
     76                // check if template is set
     77                if (template && !template.equals(requiredFieldsTemplate)) {
     78                        // template has been set or was changed, fetch
     79                        // required fields for this template
     80                        requiredFields                  = template.getRequiredFields()
     81                        requiredFieldsTemplate  = template
     82                } else if (!template) {
     83                        // template is not yet set, or was reset
     84                        requiredFieldsTemplate  = null
     85                        requiredFields                  = []
     86                }
     87
     88
     89                // return the required fields
     90                return requiredFields
     91        }
     92
     93        // overload transients from Identity and append requiredFields vars
     94        static transients                       = [ "identifier", "iterator", "maximumIdentity", "requiredFields", "requiredFieldsTemplate" ]
    9795
    9896        // define the mapping
Note: See TracChangeset for help on using the changeset viewer.