source: trunk/grails-app/domain/nl/tno/metagenomics/Study.groovy @ 2

Last change on this file since 2 was 2, checked in by robert@…, 8 years ago

Initial import of basic functionality

File size: 1.4 KB
Line 
1package nl.tno.metagenomics
2
3import nl.tno.metagenomics.auth.*;
4
5/**
6 * Minimal representation of a study. The studyToken is the link with a study object in GSCF.
7 *
8 * @see GscfService.getStudy
9 */
10class Study {
11        def gscfService
12       
13        String studyToken
14        String name
15       
16        // If a study is set to be dirty, it should be updated
17        // the next time synchronization takes place.
18        Boolean isDirty = true;
19       
20        public String viewUrl() {
21                return gscfService.urlViewStudy( studyToken );
22        }
23       
24        static hasMany = [assays: Assay, samples: Sample, auth: Auth]
25        static mapping = {
26                columns {
27                        studyToken index:'studytoken_idx'
28                }
29        }
30
31        static constraints = {
32                studyToken(unique:true)
33        }
34       
35        public boolean equals( Object o ) {
36                if( o == null )
37                        return false
38               
39                if( o instanceof Study ) {
40                        return (o.id != null && this.id != null && o.id == this.id);
41                } else {
42                        return false
43                }
44        }
45
46        public boolean canRead( User user ) {
47                Auth authorization = auth.find { it.user.equals( user ) }
48               
49                if( !authorization ) 
50                        return false
51               
52                return authorization.canRead
53        }
54       
55        public boolean canWrite( User user ) {
56                Auth authorization = auth.find { it.user.equals( user ) }
57               
58                if( !authorization ) 
59                        return false
60               
61                return authorization.canWrite
62        }
63
64        public boolean isOwner( User user ) {
65                Auth authorization = auth.find { it.user.equals( user ) }
66               
67                if( !authorization ) 
68                        return false
69               
70                return authorization.isOwner
71        }
72}
Note: See TracBrowser for help on using the repository browser.