001    /**
002     * Copyright 2005-2012 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 org.hibernate.annotations.GenericGenerator;
019    import org.hibernate.annotations.Parameter;
020    import org.kuali.rice.kew.api.util.CodeTranslator;
021    import org.kuali.rice.kim.api.responsibility.Responsibility;
022    import org.kuali.rice.kim.api.services.KimApiServiceLocator;
023    import org.kuali.rice.kim.impl.responsibility.ResponsibilityBo;
024    import org.kuali.rice.kim.impl.role.RoleResponsibilityBo;
025    import org.kuali.rice.krad.service.KRADServiceLocator;
026    import org.kuali.rice.krad.util.ObjectUtils;
027    
028    import javax.persistence.Column;
029    import javax.persistence.Entity;
030    import javax.persistence.GeneratedValue;
031    import javax.persistence.Id;
032    import javax.persistence.IdClass;
033    import javax.persistence.Table;
034    import javax.persistence.Transient;
035    
036    /**
037     * This is a description of what this class does - shyu don't forget to fill this in. 
038     * 
039     * @author Kuali Rice Team (rice.collab@kuali.org)
040     *
041     */
042    @IdClass(KimDocumentRoleResponsibilityActionId.class)
043    @Entity
044    @Table(name="KRIM_PND_ROLE_RSP_ACTN_MT")
045    public class KimDocumentRoleResponsibilityAction extends KimDocumentBoEditableBase {
046            private static final long serialVersionUID = 696663543888096105L;
047            @Id
048            @GeneratedValue(generator="KRIM_ROLE_RSP_ACTN_ID_S")
049            @GenericGenerator(name="KRIM_ROLE_RSP_ACTN_ID_S",strategy="org.kuali.rice.core.jpa.spring.RiceNumericStringSequenceStyleGenerator",parameters={
050                            @Parameter(name="sequence_name",value="KRIM_ROLE_RSP_ACTN_ID_S"),
051                            @Parameter(name="value_column",value="id")
052                    })
053            @Column(name="ROLE_RSP_ACTN_ID")
054            protected String roleResponsibilityActionId;
055            @Column(name="ROLE_RSP_ID")
056            protected String roleResponsibilityId;
057            @Column(name="ROLE_MBR_ID")
058            protected String roleMemberId;
059            @Column(name="ACTN_TYP_CD")
060            protected String actionTypeCode;
061            @Column(name="ACTN_PLCY_CD")
062            protected String actionPolicyCode;
063            @Column(name="PRIORITY_NBR")
064            protected Integer priorityNumber;
065            @Column(name="FRC_ACTN")
066            protected boolean forceAction;
067            @Transient
068            protected ResponsibilityBo kimResponsibility;
069            @Transient
070            protected RoleResponsibilityBo roleResponsibility;
071    
072    
073            
074            /*{
075                    roleResponsibility = new RoleResponsibilityImpl();
076                    roleResponsibility.setKimResponsibility(new KimResponsibilityImpl());
077                    roleResponsibility.getKimResponsibility().setTemplate(new KimResponsibilityTemplateImpl());
078            }*/
079            
080            /**
081             * @return the kimResponsibility
082             */
083            public ResponsibilityBo getKimResponsibility() {
084                            if ( ObjectUtils.isNull( kimResponsibility ) && ObjectUtils.isNotNull( getRoleResponsibility() ) ) {
085                            //TODO: this needs to be changed to use the KimResponsibilityInfo object
086                            // but the changes are involved in the UiDocumentService based on the copyProperties method used
087                            // to move the data to/from the document/real objects
088                Responsibility info = KimApiServiceLocator.getResponsibilityService().getResponsibility(getRoleResponsibility().getResponsibilityId());
089                kimResponsibility = ResponsibilityBo.from(info);
090                            }
091                    return kimResponsibility;
092            }
093            /**
094             * @param kimResponsibility the kimResponsibility to set
095             */
096            public void setKimResponsibility(ResponsibilityBo kimResponsibility) {
097                    this.kimResponsibility = kimResponsibility;
098            }
099            public String getRoleResponsibilityActionId() {
100                    return this.roleResponsibilityActionId;
101            }
102            public void setRoleResponsibilityActionId(String roleResponsibilityResolutionId) {
103                    this.roleResponsibilityActionId = roleResponsibilityResolutionId;
104            }
105            public String getRoleResponsibilityId() {
106                    return this.roleResponsibilityId;
107            }
108            public void setRoleResponsibilityId(String roleResponsibilityId) {
109                    this.roleResponsibilityId = roleResponsibilityId;
110            }
111            public String getActionTypeCode() {
112                    return this.actionTypeCode;
113            }
114            public void setActionTypeCode(String actionTypeCode) {
115                    this.actionTypeCode = actionTypeCode;
116            }
117            public Integer getPriorityNumber() {
118                    return this.priorityNumber;
119            }
120            public void setPriorityNumber(Integer priorityNumber) {
121                    this.priorityNumber = priorityNumber;
122            }
123    
124            public String getActionPolicyCode() {
125                    return this.actionPolicyCode;
126            }
127            public void setActionPolicyCode(String actionPolicyCode) {
128                    this.actionPolicyCode = actionPolicyCode;
129            }
130            public String getRoleMemberId() {
131                    return this.roleMemberId;
132            }
133            public void setRoleMemberId(String roleMemberId) {
134                    this.roleMemberId = roleMemberId;
135            }
136            
137            /**
138             * 
139             * This method fore readonlyalterdisplay
140             * 
141             * @return
142             */
143            public String getActionPolicyDescription() {
144                    return (String)CodeTranslator.approvePolicyLabels.get(this.actionPolicyCode);
145            }
146    
147            /**
148             * 
149             * This method fore readonlyalterdisplay
150             * 
151             * @return
152             */
153            public String getActionTypeDescription() {
154                    return (String) CodeTranslator.arLabels.get(this.actionTypeCode);
155            }
156            /**
157             * @return the roleResponsibility
158             */
159            public RoleResponsibilityBo getRoleResponsibility() {
160                    if ( ObjectUtils.isNull( roleResponsibility ) && roleResponsibilityId != null ) {
161                            //TODO: this needs to be changed to use the KimResponsibilityInfo object
162                            // but the changes are involved in the UiDocumentService based on the copyProperties method used
163                            // to move the data to/from the document/real objects
164                            roleResponsibility = KRADServiceLocator.getBusinessObjectService().findBySinglePrimaryKey(RoleResponsibilityBo.class, getRoleResponsibilityId());
165                    }
166                    return roleResponsibility;
167            }
168            /**
169             * @param roleResponsibility the roleResponsibility to set
170             */
171            public void setRoleResponsibility(RoleResponsibilityBo roleResponsibility) {
172                    this.roleResponsibility = roleResponsibility;
173            }
174    
175            /**
176             * @return the forceAction
177             */
178            public boolean isForceAction() {
179                    return this.forceAction;
180            }
181            /**
182             * @param forceAction the forceAction to set
183             */
184            public void setForceAction(boolean forceAction) {
185                    this.forceAction = forceAction;
186            }
187    
188    }