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.eclipse.persistence.annotations.JoinFetch; 029import org.eclipse.persistence.annotations.JoinFetchType; 030import org.kuali.rice.kim.api.role.RoleResponsibility; 031import org.kuali.rice.kim.api.role.RoleResponsibilityContract; 032import org.kuali.rice.kim.impl.responsibility.ResponsibilityBo; 033import org.kuali.rice.krad.bo.DataObjectBase; 034import org.kuali.rice.krad.data.jpa.converters.BooleanYNConverter; 035import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator; 036 037/** 038 * @author Kuali Rice Team (rice.collab@kuali.org) 039 */ 040@Entity 041@Table(name = "KRIM_ROLE_RSP_T") 042public class RoleResponsibilityBo extends DataObjectBase implements RoleResponsibilityContract { 043 044 private static final long serialVersionUID = 1L; 045 046 @PortableSequenceGenerator(name = "KRIM_ROLE_RSP_ID_S") 047 @GeneratedValue(generator = "KRIM_ROLE_RSP_ID_S") 048 @Id 049 @Column(name = "ROLE_RSP_ID") 050 private String roleResponsibilityId; 051 052 @Column(name = "ROLE_ID") 053 private String roleId; 054 055 @Column(name = "RSP_ID") 056 private String responsibilityId; 057 058 @Column(name = "ACTV_IND") 059 @Convert(converter = BooleanYNConverter.class) 060 private boolean active; 061 062 @JoinFetch(value= JoinFetchType.OUTER) 063 @ManyToOne(targetEntity = ResponsibilityBo.class, cascade = { CascadeType.REFRESH }) 064 @JoinColumn(name = "RSP_ID", referencedColumnName = "RSP_ID", insertable = false, updatable = false) 065 private ResponsibilityBo kimResponsibility; 066 067 public static RoleResponsibility to(RoleResponsibilityBo bo) { 068 if (bo == null) { 069 return null; 070 } 071 return RoleResponsibility.Builder.create(bo).build(); 072 } 073 074 public static RoleResponsibilityBo from(RoleResponsibility immutable) { 075 if (immutable == null) { 076 return null; 077 } 078 RoleResponsibilityBo bo = new RoleResponsibilityBo(); 079 bo.roleResponsibilityId = immutable.getRoleResponsibilityId(); 080 bo.roleId = immutable.getRoleId(); 081 bo.responsibilityId = immutable.getResponsibilityId(); 082 bo.active = immutable.isActive(); 083 bo.setVersionNumber(immutable.getVersionNumber()); 084 return bo; 085 } 086 087 @Override 088 public String getRoleResponsibilityId() { 089 return roleResponsibilityId; 090 } 091 092 public void setRoleResponsibilityId(String roleResponsibilityId) { 093 this.roleResponsibilityId = roleResponsibilityId; 094 } 095 096 @Override 097 public String getRoleId() { 098 return roleId; 099 } 100 101 public void setRoleId(String roleId) { 102 this.roleId = roleId; 103 } 104 105 @Override 106 public String getResponsibilityId() { 107 return responsibilityId; 108 } 109 110 public void setResponsibilityId(String responsibilityId) { 111 this.responsibilityId = responsibilityId; 112 } 113 114 public boolean getActive() { 115 return active; 116 } 117 118 @Override 119 public boolean isActive() { 120 return active; 121 } 122 123 public void setActive(boolean active) { 124 this.active = active; 125 } 126 127 public ResponsibilityBo getKimResponsibility() { 128 return kimResponsibility; 129 } 130 131 public void setKimResponsibility(ResponsibilityBo kimResponsibility) { 132 this.kimResponsibility = kimResponsibility; 133 } 134}