source: trunk/grails-app/domain/dbnp/studycapturing/TemplateFieldType.groovy @ 1245

Last change on this file since 1245 was 1245, checked in by work@…, 10 years ago
  • moved 'description' from study template fields into domain variables so that every study will contain a -non required- description which is more logical
  • Property svn:keywords set to Author Date Rev
File size: 2.1 KB
Line 
1package dbnp.studycapturing
2
3/**
4 * Enum describing the type of a TemplateField.
5 *
6 * Revision information:
7 * $Rev: 1245 $
8 * $Author: work@osx.eu $
9 * $Date: 2010-12-09 13:51:51 +0000 (do, 09 dec 2010) $
10 */
11public enum TemplateFieldType implements Serializable {
12        STRING          ('String'                               , 'Text'                , 'max 255 chars'),                     // string
13        TEXT            ('Long string'                  , 'Text'                , 'unlimited'),                         // text
14        //INTEGER       ('Integer number'               , 'Numerical'   , '1'),                                         // integer
15        //FLOAT         ('Floating-point number', 'Numerical'   , '1.0'),                                       // float
16        DOUBLE          ('Floating point number', 'Numerical'   , '1.0'),                                       // double
17        STRINGLIST      ('List of items'                , 'Text'                , ''),                                          // string list
18        ONTOLOGYTERM('Ontology Reference'       , 'Other'               , ''),                                          // ontology reference
19        DATE            ('Date'                                 , 'Date'                , '2010-01-01'),                        // date
20        RELTIME         ('Relative time'                , 'Date'                , '3 days'),                            // relative date, e.g. days since start of study
21        FILE            ('File'                                 , 'Other'               , '')           ,                               // file
22        BOOLEAN         ('Boolean'                              , 'Other'               , 'true/false'),                        // boolean
23        TEMPLATE        ('Template'                             , 'Other'               , ''),                                          // template
24        MODULE          ('Module'                               , 'Other'               , ''),                                          // third party connected module,
25        LONG            ('Integer number'               , 'Numerical'   , '100')                                        // long
26    // TODO: add a timezone-aware date type to use for study start date
27
28    String name
29        String category
30        String example
31
32        TemplateFieldType(String name) {
33                this.name = name
34        }
35        TemplateFieldType(String name, String category, String example) {
36                this.name = name
37                this.category = category
38                this.example = example
39        }
40
41        static list() {
42                [STRING, TEXT, DOUBLE, STRINGLIST, ONTOLOGYTERM, DATE, RELTIME, FILE, BOOLEAN, TEMPLATE, MODULE, LONG]
43        }
44
45        def getDefaultValue() {
46                switch (this) {
47                        case [STRING, TEXT]:
48                                return ""
49                        case DOUBLE:
50                                return Double.MIN_VALUE
51                        case STRINGLIST:
52                                return null
53                        case ONTOLOGYTERM:
54                                return null
55                        case DATE:
56                                return null
57                        case RELTIME:
58                                return null
59                        case FILE:
60                                return ""
61                        case BOOLEAN:
62                                return false
63                        case TEMPLATE:
64                                return null
65                        case MODULE:
66                                return null
67                        case LONG:
68                                return Long.MIN_VALUE
69                        default:
70                                throw new NoSuchFieldException("Field type ${fieldType} not recognized")
71                }
72        }
73}
Note: See TracBrowser for help on using the repository browser.