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

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