View Javadoc
1   /**
2    * Copyright 2005-2015 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kim.impl.role;
17  
18  import javax.persistence.CascadeType;
19  import javax.persistence.Column;
20  import javax.persistence.Convert;
21  import javax.persistence.Entity;
22  import javax.persistence.GeneratedValue;
23  import javax.persistence.Id;
24  import javax.persistence.JoinColumn;
25  import javax.persistence.ManyToOne;
26  import javax.persistence.Table;
27  
28  import org.apache.commons.lang.ObjectUtils;
29  import org.apache.commons.lang.StringUtils;
30  import org.eclipse.persistence.annotations.JoinFetch;
31  import org.eclipse.persistence.annotations.JoinFetchType;
32  import org.kuali.rice.kim.api.role.RoleResponsibilityAction;
33  import org.kuali.rice.kim.api.role.RoleResponsibilityActionContract;
34  import org.kuali.rice.krad.bo.DataObjectBase;
35  import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator;
36  import org.kuali.rice.krad.data.jpa.converters.BooleanYNConverter;
37  
38  /**
39   * This is a description of what this class does - kellerj don't forget to fill this in.
40   *
41   * @author Kuali Rice Team (rice.collab@kuali.org)
42   */
43  @Entity
44  @Table(name = "KRIM_ROLE_RSP_ACTN_T")
45  public class RoleResponsibilityActionBo extends DataObjectBase implements RoleResponsibilityActionContract {
46  
47      private static final long serialVersionUID = 1L;
48  
49      @PortableSequenceGenerator(name = "KRIM_ROLE_RSP_ACTN_ID_S")
50      @GeneratedValue(generator = "KRIM_ROLE_RSP_ACTN_ID_S")
51      @Id
52      @Column(name = "ROLE_RSP_ACTN_ID")
53      private String id;
54  
55      @Column(name = "ROLE_RSP_ID")
56      private String roleResponsibilityId;
57  
58      @Column(name = "ROLE_MBR_ID")
59      private String roleMemberId;
60  
61      @Column(name = "ACTN_TYP_CD")
62      private String actionTypeCode;
63  
64      @Column(name = "ACTN_PLCY_CD")
65      private String actionPolicyCode;
66  
67      @Column(name = "FRC_ACTN")
68      @Convert(converter = BooleanYNConverter.class)
69      private boolean forceAction;
70  
71      @Column(name = "PRIORITY_NBR")
72      private Integer priorityNumber;
73  
74      @JoinFetch(value= JoinFetchType.OUTER)
75      @ManyToOne(targetEntity = RoleResponsibilityBo.class, cascade = { CascadeType.REFRESH })
76      @JoinColumn(name = "ROLE_RSP_ID", referencedColumnName = "ROLE_RSP_ID", insertable = false, updatable = false)
77      private RoleResponsibilityBo roleResponsibility;
78  
79      @Override
80      public RoleResponsibilityBo getRoleResponsibility() {
81          return roleResponsibility;
82      }
83  
84      public static RoleResponsibilityAction to(RoleResponsibilityActionBo bo) {
85          if (bo == null) {
86              return null;
87          }
88          return RoleResponsibilityAction.Builder.create(bo).build();
89      }
90  
91      public static RoleResponsibilityActionBo from(RoleResponsibilityAction immutable) {
92          if (immutable == null) {
93              return null;
94          }
95          RoleResponsibilityActionBo bo = new RoleResponsibilityActionBo();
96          bo.id = immutable.getId();
97          bo.roleResponsibilityId = immutable.getRoleResponsibilityId();
98          bo.roleMemberId = immutable.getRoleMemberId();
99          bo.actionTypeCode = immutable.getActionTypeCode();
100         bo.actionPolicyCode = immutable.getActionPolicyCode();
101         bo.forceAction = immutable.isForceAction();
102         bo.priorityNumber = immutable.getPriorityNumber();
103         bo.roleResponsibility = RoleResponsibilityBo.from(immutable.getRoleResponsibility());
104         bo.setVersionNumber(immutable.getVersionNumber());
105         return bo;
106     }
107 
108     public boolean equals(RoleResponsibilityActionBo roleRspActn) {
109         if (!StringUtils.equals(roleRspActn.getRoleMemberId(), getRoleMemberId())) {
110             return false;
111         }
112         if (!StringUtils.equals(roleRspActn.getRoleResponsibilityId(), getRoleResponsibilityId())) {
113             return false;
114         }
115         if (!StringUtils.equals(roleRspActn.getActionTypeCode(), getActionTypeCode())) {
116             return false;
117         }
118         if (!StringUtils.equals(roleRspActn.getActionPolicyCode(), getActionPolicyCode())) {
119             return false;
120         }
121         if (!ObjectUtils.equals(roleRspActn.getPriorityNumber(), getPriorityNumber())) {
122             return false;
123         }
124         return true;
125     }
126 
127     @Override
128     public String getId() {
129         return id;
130     }
131 
132     public void setId(String id) {
133         this.id = id;
134     }
135 
136     @Override
137     public String getRoleResponsibilityId() {
138         return roleResponsibilityId;
139     }
140 
141     public void setRoleResponsibilityId(String roleResponsibilityId) {
142         this.roleResponsibilityId = roleResponsibilityId;
143     }
144 
145     @Override
146     public String getRoleMemberId() {
147         return roleMemberId;
148     }
149 
150     public void setRoleMemberId(String roleMemberId) {
151         this.roleMemberId = roleMemberId;
152     }
153 
154     @Override
155     public String getActionTypeCode() {
156         return actionTypeCode;
157     }
158 
159     public void setActionTypeCode(String actionTypeCode) {
160         this.actionTypeCode = actionTypeCode;
161     }
162 
163     @Override
164     public String getActionPolicyCode() {
165         return actionPolicyCode;
166     }
167 
168     public void setActionPolicyCode(String actionPolicyCode) {
169         this.actionPolicyCode = actionPolicyCode;
170     }
171 
172     public boolean getForceAction() {
173         return forceAction;
174     }
175 
176     @Override
177     public boolean isForceAction() {
178         return forceAction;
179     }
180 
181     public void setForceAction(boolean forceAction) {
182         this.forceAction = forceAction;
183     }
184 
185     @Override
186     public Integer getPriorityNumber() {
187         return priorityNumber;
188     }
189 
190     public void setPriorityNumber(Integer priorityNumber) {
191         this.priorityNumber = priorityNumber;
192     }
193 
194     public void setRoleResponsibility(RoleResponsibilityBo roleResponsibility) {
195         this.roleResponsibility = roleResponsibility;
196     }
197 }