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

Last change on this file since 408 was 408, checked in by keesvb, 9 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.