001 /**
002 * Copyright 2005-2014 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.rice.kim.bo.ui;
017
018 import java.util.List;
019
020 import javax.persistence.CascadeType;
021 import javax.persistence.Column;
022 import javax.persistence.Entity;
023 import javax.persistence.FetchType;
024 import javax.persistence.GeneratedValue;
025 import javax.persistence.Id;
026 import javax.persistence.IdClass;
027 import javax.persistence.JoinColumn;
028 import javax.persistence.JoinColumns;
029 import javax.persistence.OneToMany;
030 import javax.persistence.Table;
031 import javax.persistence.Transient;
032
033 import org.hibernate.annotations.Fetch;
034 import org.hibernate.annotations.FetchMode;
035 import org.hibernate.annotations.GenericGenerator;
036 import org.hibernate.annotations.Parameter;
037 import org.kuali.rice.core.api.delegation.DelegationType;
038 import org.springframework.util.AutoPopulatingList;
039
040 /**
041 * This is a description of what this class does - kellerj don't forget to fill this in.
042 *
043 * @author Kuali Rice Team (kuali-rice@googleroles.com)
044 *
045 */
046 @IdClass(RoleDocumentDelegationId.class)
047 @Entity
048 @Table(name="KRIM_PND_DLGN_T")
049 public class RoleDocumentDelegation extends KimDocumentBoActivatableBase {
050
051 private static final long serialVersionUID = 1L;
052
053 @Id
054 @GeneratedValue(generator="KRIM_DLGN_ID_S")
055 @GenericGenerator(name="KRIM_DLGN_ID_S",strategy="org.kuali.rice.core.jpa.spring.RiceNumericStringSequenceStyleGenerator",parameters={
056 @Parameter(name="sequence_name",value="KRIM_DLGN_ID_S"),
057 @Parameter(name="value_column",value="id")
058 })
059 @Column(name="DLGN_ID")
060 protected String delegationId;
061
062 @Column(name="ROLE_ID")
063 protected String roleId;
064
065 @Column(name="KIM_TYP_ID")
066 protected String kimTypeId;
067
068 @Column(name="DLGN_TYP_CD")
069 protected String delegationTypeCode;
070
071 @OneToMany(targetEntity=RoleDocumentDelegationMember.class, fetch=FetchType.EAGER, cascade={CascadeType.ALL})
072 @Fetch(value = FetchMode.SELECT)
073 @JoinColumns({
074 @JoinColumn(name="dlgn_id",insertable=false,updatable=false),
075 @JoinColumn(name="fdoc_nbr", insertable=false, updatable=false)
076 })
077 private List<RoleDocumentDelegationMember> members = new AutoPopulatingList(RoleDocumentDelegationMember.class);
078
079 @Transient
080 private RoleDocumentDelegationMember member = new RoleDocumentDelegationMember();
081
082 @Transient
083 protected List<KimDocumentRoleQualifier> qualifiers = new AutoPopulatingList(KimDocumentRoleQualifier.class);
084
085 public String getRoleId() {
086 return this.roleId;
087 }
088
089 public void setRoleId(String roleId) {
090 this.roleId = roleId;
091 }
092
093 public String getKimTypeId() {
094 return this.kimTypeId;
095 }
096
097 public void setKimTypeId(String typeId) {
098 this.kimTypeId = typeId;
099 }
100
101 public String getDelegationTypeCode() {
102 return this.delegationTypeCode;
103 }
104
105 public void setDelegationTypeCode(String delegationTypeCode) {
106 this.delegationTypeCode = delegationTypeCode;
107 }
108
109 public String getDelegationId() {
110 return this.delegationId;
111 }
112
113 public void setDelegationId(String delegationId) {
114 this.delegationId = delegationId;
115 }
116
117 /**
118 * @return the qualifiers
119 */
120 public List<KimDocumentRoleQualifier> getQualifiers() {
121 return this.qualifiers;
122 }
123
124 /**
125 * @param qualifiers the qualifiers to set
126 */
127 public void setQualifiers(List<KimDocumentRoleQualifier> qualifiers) {
128 this.qualifiers = qualifiers;
129 }
130
131 public int getNumberOfQualifiers(){
132 return qualifiers==null?0:qualifiers.size();
133 }
134
135 /**
136 * @return the members
137 */
138 public List<RoleDocumentDelegationMember> getMembers() {
139 return this.members;
140 }
141
142 /**
143 * @param members the members to set
144 */
145 public void setMembers(List<RoleDocumentDelegationMember> members) {
146 this.members = members;
147 }
148
149 /**
150 * @return the member
151 */
152 public RoleDocumentDelegationMember getMember() {
153 return this.member;
154 }
155
156 /**
157 * @param member the member to set
158 */
159 public void setMember(RoleDocumentDelegationMember member) {
160 this.member = member;
161 }
162
163 public boolean isDelegationPrimary(){
164 return DelegationType.PRIMARY.getCode().equals(getDelegationTypeCode());
165 }
166
167 public boolean isDelegationSecondary(){
168 return DelegationType.SECONDARY.getCode().equals(getDelegationTypeCode());
169 }
170
171 }