001    package org.sonar.api.security;
002    
003    import org.sonar.api.database.BaseIdentifiable;
004    
005    import javax.persistence.Column;
006    import javax.persistence.Entity;
007    import javax.persistence.Table;
008    
009    /**
010     * @since 1.12
011     */
012    @Entity
013    @Table(name = "group_roles")
014    public class GroupRole extends BaseIdentifiable {
015    
016      public static final Integer ANYONE_GROUP_ID = null;
017    
018      @Column(name = "group_id")
019      private Integer groupId;
020    
021      @Column(name = "role")
022      private String role;
023    
024      @Column(name = "resource_id")
025      private Integer resourceId;
026    
027      public static GroupRole buildGlobalRole(Integer groupId, String role) {
028        return new GroupRole().setGroupId(groupId).setRole(role);
029      }
030    
031      public static GroupRole buildResourceRole(Integer groupId, String role, Integer resourceId) {
032        return new GroupRole().setGroupId(groupId).setRole(role).setResourceId(resourceId);
033      }
034    
035      public Integer getGroupId() {
036        return groupId;
037      }
038    
039      public GroupRole setGroupId(Integer groupId) {
040        this.groupId = groupId;
041        return this;
042      }
043    
044      public String getRole() {
045        return role;
046      }
047    
048      public GroupRole setRole(String role) {
049        this.role = role;
050        return this;
051      }
052    
053      public Integer getResourceId() {
054        return resourceId;
055      }
056    
057      public GroupRole setResourceId(Integer resourceId) {
058        this.resourceId = resourceId;
059        return this;
060      }
061    
062      public boolean isAnyone() {
063        return groupId==ANYONE_GROUP_ID;
064      }
065    }