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

Last change on this file since 550 was 550, checked in by keesvb, 11 years ago

added entity property to TemplateField?; added validator to Template to ensure fields are of the correct entity, updated BootStrap? accordingly, updated tests accordingly

  • Property svn:keywords set to Date Rev Author
File size: 1.3 KB
Line 
1package dbnp.studycapturing
2
3/**
4 * Enum describing the type of a templated field.
5 * Revision information:
6 * $Rev: 550 $
7 * $Author: keesvb $
8 * $Date: 2010-06-09 23:33:37 +0000 (wo, 09 jun 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    // TODO: add a timezone-aware date type to use for study start date
22    // TODO: add a BOOLEAN type (checkbox)
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]
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                        default:
55                                throw new NoSuchFieldException("Field type ${fieldType} not recognized")
56                }
57        }
58}
Note: See TracBrowser for help on using the repository browser.