001/** 002 * Copyright 2005-2016 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 */ 016package org.kuali.rice.kim.impl.role; 017 018import javax.persistence.CascadeType; 019import javax.persistence.Column; 020import javax.persistence.Convert; 021import javax.persistence.Entity; 022import javax.persistence.GeneratedValue; 023import javax.persistence.Id; 024import javax.persistence.JoinColumn; 025import javax.persistence.ManyToOne; 026import javax.persistence.Table; 027 028import org.apache.commons.lang.ObjectUtils; 029import org.apache.commons.lang.StringUtils; 030import org.eclipse.persistence.annotations.JoinFetch; 031import org.eclipse.persistence.annotations.JoinFetchType; 032import org.kuali.rice.kim.api.role.RoleResponsibilityAction; 033import org.kuali.rice.kim.api.role.RoleResponsibilityActionContract; 034import org.kuali.rice.krad.bo.DataObjectBase; 035import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator; 036import org.kuali.rice.krad.data.jpa.converters.BooleanYNConverter; 037 038/** 039 * This is a description of what this class does - kellerj don't forget to fill this in. 040 * 041 * @author Kuali Rice Team (rice.collab@kuali.org) 042 */ 043@Entity 044@Table(name = "KRIM_ROLE_RSP_ACTN_T") 045public class RoleResponsibilityActionBo extends DataObjectBase implements RoleResponsibilityActionContract { 046 047 private static final long serialVersionUID = 1L; 048 049 @PortableSequenceGenerator(name = "KRIM_ROLE_RSP_ACTN_ID_S") 050 @GeneratedValue(generator = "KRIM_ROLE_RSP_ACTN_ID_S") 051 @Id 052 @Column(name = "ROLE_RSP_ACTN_ID") 053 private String id; 054 055 @Column(name = "ROLE_RSP_ID") 056 private String roleResponsibilityId; 057 058 @Column(name = "ROLE_MBR_ID") 059 private String roleMemberId; 060 061 @Column(name = "ACTN_TYP_CD") 062 private String actionTypeCode; 063 064 @Column(name = "ACTN_PLCY_CD") 065 private String actionPolicyCode; 066 067 @Column(name = "FRC_ACTN") 068 @Convert(converter = BooleanYNConverter.class) 069 private boolean forceAction; 070 071 @Column(name = "PRIORITY_NBR") 072 private Integer priorityNumber; 073 074 @JoinFetch(value= JoinFetchType.OUTER) 075 @ManyToOne(targetEntity = RoleResponsibilityBo.class, cascade = { CascadeType.REFRESH }) 076 @JoinColumn(name = "ROLE_RSP_ID", referencedColumnName = "ROLE_RSP_ID", insertable = false, updatable = false) 077 private RoleResponsibilityBo roleResponsibility; 078 079 @Override 080 public RoleResponsibilityBo getRoleResponsibility() { 081 return roleResponsibility; 082 } 083 084 public static RoleResponsibilityAction to(RoleResponsibilityActionBo bo) { 085 if (bo == null) { 086 return null; 087 } 088 return RoleResponsibilityAction.Builder.create(bo).build(); 089 } 090 091 public static RoleResponsibilityActionBo from(RoleResponsibilityAction immutable) { 092 if (immutable == null) { 093 return null; 094 } 095 RoleResponsibilityActionBo bo = new RoleResponsibilityActionBo(); 096 bo.id = immutable.getId(); 097 bo.roleResponsibilityId = immutable.getRoleResponsibilityId(); 098 bo.roleMemberId = immutable.getRoleMemberId(); 099 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}