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

Last change on this file since 825 was 825, checked in by duh, 12 years ago
  • Property svn:keywords set to Author Rev Date
File size: 1.7 KB
Line 
1package dbnp.studycapturing
2
3/**
4 * Enum describing the type of a TemplateField.
5 *
6 * Revision information:
7 * $Rev: 825 $
8 * $Author: duh $
9 * $Date: 2010-08-17 16:22:24 +0000 (di, 17 aug 2010) $
10 */
11public enum TemplateFieldType implements Serializable {
12        STRING('String'),                                                                       // string
13        TEXT('Long string'),                                                            // text
14        INTEGER('Integer number'),                                                      // integer
15        FLOAT('Floating-point number'),                                         // float
16        DOUBLE('Double precision floating-point number'),       // double
17        STRINGLIST('List of items'),                                            // string list
18        ONTOLOGYTERM('Ontology Reference'),                                     // ontology reference
19        DATE('Date'),                                                                           // date
20        RELTIME('Relative time'),                                                       // relative date, e.g. days since start of study
21        FILE('File'),                                                                           // file
22        BOOLEAN('Boolean'),                                                                     // boolean
23        TEMPLATE('Template'),                                                           // template
24        MODULE('Module'),                                                                       // third party connected module,
25        LONG('Long number')                                                                     // long
26    // TODO: add a timezone-aware date type to use for study start date
27
28    String name
29
30        TemplateFieldType(String name) {
31                this.name = name
32        }
33
34        static list() {
35                [STRING, TEXT, INTEGER, FLOAT, DOUBLE, STRINGLIST, ONTOLOGYTERM, DATE, RELTIME, FILE, BOOLEAN, TEMPLATE, MODULE, LONG]
36        }
37
38        def getDefaultValue() {
39                switch (this) {
40                        case [STRING, TEXT]:
41                                return ""
42                        case INTEGER:
43                                return Integer.MIN_VALUE
44                        case FLOAT:
45                                return Float.NaN
46                        case DOUBLE:
47                                return Double.MIN_VALUE
48                        case STRINGLIST:
49                                return null
50                        case ONTOLOGYTERM:
51                                return null
52                        case DATE:
53                                return null
54                        case RELTIME:
55                                return null
56                        case FILE:
57                                return ""
58                        case BOOLEAN:
59                                return false
60                        case TEMPLATE:
61                                return null
62                        case MODULE:
63                                return null
64                        case LONG:
65                                return Long.MIN_VALUE
66                        default:
67                                throw new NoSuchFieldException("Field type ${fieldType} not recognized")
68                }
69        }
70}
Note: See TracBrowser for help on using the repository browser.