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

Last change on this file since 397 was 397, checked in by duh, 10 years ago
  • reformatted source code
  • added mega huge big ASCII comments to UNDOCUMMENTED of not properly DOCUMENTED classess... we have agreed many many MANY times that everyone should document their code according to JavaDoc? style... but why does nobody do it, or just keep SLACKING! /annoyed modus
  • Property svn:keywords set to Date Author Rev
File size: 2.0 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: 397 $
8 * $Author: duh $
9 * $Date: 2010-05-07 12:53:11 +0000 (vr, 07 mei 2010) $
10 */
11class Study extends TemplateEntity implements Serializable {
12        static searchable = true
13        nimble.User owner
14        Date dateCreated
15        Date lastUpdated
16
17        /**
18         * return the domain fields for this domain class
19         * @return List
20         */
21        List<TemplateField> giveDomainFields() {
22                [
23                        new TemplateField(
24                                name: 'title',
25                                type: TemplateFieldType.STRING),
26                        new TemplateField(
27                                name: 'startDate',
28                                type: TemplateFieldType.DATE)
29                ]
30        }
31
32        static hasMany = [
33                editors: nimble.User,
34                readers: nimble.User,
35                subjects: Subject,
36                events: Event,
37                samplingEvents: SamplingEvent,
38                eventGroups: EventGroup,
39                samples: Sample,
40                assays: Assay,
41                persons: StudyPerson,
42                publications: Publication
43        ]
44
45        static constraints = {
46                owner(nullable: true, blank: true)
47                template(nullable: false, blank: false)
48        }
49
50        static mapping = {
51                researchQuestion type: 'text'
52                description type: 'text'
53                autoTimestamp true
54        }
55
56        /**
57         * return the title of this study
58         */
59        def String toString() {
60                //return title;
61                def title = this.giveDomainFields().find { it.name == 'title' }
62
63                return title.toString()
64        }
65
66        /**
67         * Return the unique Subject templates that are used in this study
68         */
69        def Set<Template> giveSubjectTemplates() {
70                TemplateEntity.giveTemplates(subjects);
71        }
72
73        /**
74         * Return the unique Event templates that are used in this study
75         */
76        def Set<Template> giveEventTemplates() {
77                TemplateEntity.giveTemplates(events);
78        }
79
80        /**
81         * Return the unique SamplingEvent templates that are used in this study
82         */
83        def Set<Template> giveSamplingEventTemplates() {
84                TemplateEntity.giveTemplates(events);
85        }
86
87        /**
88         * Returns the unique Sample templates that are used in the study
89         */
90        def Template giveSampleTemplates() {
91                TemplateEntity.giveTemplates(samples);
92        }
93        /**
94         * Returns the template of the study
95         */
96        def Template giveStudyTemplate() {
97                return this.template;
98        }
99}
Note: See TracBrowser for help on using the repository browser.