source: trunk/grails-app/domain/dbnp/studycapturing/Study.groovy @ 408

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

reverted changes which removed domain fields from the domain classes, we are now back again at more or less the situation of #394, added preferredIdentifier property to TemplateField? to facilitate simple import

  • Property svn:keywords set to Date Author Rev
File size: 1.9 KB
Line 
1package dbnp.studycapturing
2
3/**
4 * Domain class describing the basic entity in the study capture part: the Study class.
5 *
6 * Revision information:
7 * $Rev: 408 $
8 * $Author: keesvb $
9 * $Date: 2010-05-11 14:41:05 +0000 (di, 11 mei 2010) $
10 */
11class Study extends TemplateEntity implements Serializable {
12        static searchable = true
13        nimble.User owner
14        String title
15        Date dateCreated
16        Date lastUpdated
17        Date startDate
18
19        /**
20         * return the domain fields for this domain class
21         * @return List
22         */
23        List<TemplateField> giveDomainFields() {
24                [
25                        new TemplateField(
26                                name: 'title',
27                                type: TemplateFieldType.STRING),
28                        new TemplateField(
29                                name: 'startDate',
30                                type: TemplateFieldType.DATE)
31                ]
32        }
33
34        static hasMany = [
35                editors: nimble.User,
36                readers: nimble.User,
37                subjects: Subject,
38                events: Event,
39                samplingEvents: SamplingEvent,
40                eventGroups: EventGroup,
41                samples: Sample,
42                assays: Assay,
43                persons: StudyPerson,
44                publications: Publication
45        ]
46
47        static constraints = {
48                owner(nullable: true, blank: true)
49        }
50
51        static mapping = {
52                researchQuestion type: 'text'
53                description type: 'text'
54                autoTimestamp true
55        }
56
57        /**
58         * return the title of this study
59         */
60        def String toString() {
61                return title;
62        }
63
64        /**
65         * Return the unique Subject templates that are used in this study
66         */
67        def Set<Template> giveSubjectTemplates() {
68                TemplateEntity.giveTemplates(subjects);
69        }
70
71        /**
72         * Return the unique Event templates that are used in this study
73         */
74        def Set<Template> giveEventTemplates() {
75                TemplateEntity.giveTemplates(events);
76        }
77
78        /**
79         * Return the unique SamplingEvent templates that are used in this study
80         */
81        def Set<Template> giveSamplingEventTemplates() {
82                TemplateEntity.giveTemplates(events);
83        }
84
85        /**
86         * Returns the unique Sample templates that are used in the study
87         */
88        def Template giveSampleTemplates() {
89                TemplateEntity.giveTemplates(samples);
90        }
91        /**
92         * Returns the template of the study
93         */
94        def Template giveStudyTemplate() {
95                return this.template;
96        }
97}
Note: See TracBrowser for help on using the repository browser.