001    /*
002     * Copyright 2007-2009 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.impl;
017    
018    import java.util.LinkedHashMap;
019    
020    import javax.persistence.Column;
021    import javax.persistence.Entity;
022    import javax.persistence.Id;
023    import javax.persistence.PrePersist;
024    import javax.persistence.PreUpdate;
025    import javax.persistence.Table;
026    
027    import org.apache.ojb.broker.PersistenceBroker;
028    import org.apache.ojb.broker.PersistenceBrokerException;
029    import org.kuali.rice.kew.doctype.bo.DocumentTypeEBO;
030    import org.kuali.rice.kim.bo.role.KimResponsibility;
031    import org.kuali.rice.kim.bo.types.dto.AttributeSet;
032    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
033    
034    /**
035     * This is a description of what this class does - jonathan don't forget to fill this in. 
036     * 
037     * @author Kuali Rice Team (rice.collab@kuali.org)
038     *
039     */
040    @Entity
041    @Table(name="KRIM_RSP_T")
042    public class ReviewResponsibility extends PersistableBusinessObjectBase {
043    
044            private static final long serialVersionUID = 1L;
045    
046            public static final String ACTION_DETAILS_AT_ROLE_MEMBER_LEVEL_FIELD_NAME = "actionDetailsAtRoleMemberLevel";
047            // standard responsibility attributes 
048            @Id
049            @Column(name="RSP_ID")
050            protected String responsibilityId;
051            protected String namespaceCode;
052            protected String name;
053            protected String description;
054            protected boolean active;
055    
056            // review responsibility standard properties
057            protected String documentTypeName;
058            protected String routeNodeName;
059            protected boolean actionDetailsAtRoleMemberLevel;
060            protected boolean required;
061            protected String qualifierResolverProvidedIdentifier;
062    
063            protected DocumentTypeEBO documentType;
064            
065            public ReviewResponsibility() {
066            }
067            
068            public ReviewResponsibility( KimResponsibility resp ) {
069                    loadFromKimResponsibility(resp);
070            }
071            
072            public void loadFromKimResponsibility( KimResponsibility resp ) {
073            setResponsibilityId( resp.getResponsibilityId() );
074            setNamespaceCode( resp.getNamespaceCode() );
075            setName( resp.getName() );
076            setDescription( resp.getDescription() );
077            setActive( resp.isActive() );
078            AttributeSet respDetails = resp.getDetails();
079            setDocumentTypeName( respDetails.get( KimAttributes.DOCUMENT_TYPE_NAME ) );
080            setRouteNodeName( respDetails.get( KimAttributes.ROUTE_NODE_NAME ) );
081            setActionDetailsAtRoleMemberLevel( Boolean.valueOf( respDetails.get( KimAttributes.ACTION_DETAILS_AT_ROLE_MEMBER_LEVEL ) ) );
082            setRequired( Boolean.valueOf( respDetails.get( KimAttributes.REQUIRED ) ) );
083            setQualifierResolverProvidedIdentifier( respDetails.get( KimAttributes.QUALIFIER_RESOLVER_PROVIDED_IDENTIFIER ) );
084            }
085            
086            /**
087             * @return the responsibilityId
088             */
089            public String getResponsibilityId() {
090                    return this.responsibilityId;
091            }
092    
093            /**
094             * @param responsibilityId the responsibilityId to set
095             */
096            public void setResponsibilityId(String responsibilityId) {
097                    this.responsibilityId = responsibilityId;
098            }
099    
100            /**
101             * @return the namespaceCode
102             */
103            public String getNamespaceCode() {
104                    return this.namespaceCode;
105            }
106    
107            /**
108             * @param namespaceCode the namespaceCode to set
109             */
110            public void setNamespaceCode(String namespaceCode) {
111                    this.namespaceCode = namespaceCode;
112            }
113    
114            /**
115             * @return the name
116             */
117            public String getName() {
118                    return this.name;
119            }
120    
121            /**
122             * @param name the name to set
123             */
124            public void setName(String name) {
125                    this.name = name;
126            }
127    
128            /**
129             * @return the description
130             */
131            public String getDescription() {
132                    return this.description;
133            }
134    
135            /**
136             * @param description the description to set
137             */
138            public void setDescription(String description) {
139                    this.description = description;
140            }
141    
142            /**
143             * @return the active
144             */
145            public boolean isActive() {
146                    return this.active;
147            }
148    
149            /**
150             * @param active the active to set
151             */
152            public void setActive(boolean active) {
153                    this.active = active;
154            }
155    
156            /**
157             * @return the documentTypeName
158             */
159            public String getDocumentTypeName() {
160                    return this.documentTypeName;
161            }
162    
163            /**
164             * @param documentTypeName the documentTypeName to set
165             */
166            public void setDocumentTypeName(String documentTypeName) {
167                    this.documentTypeName = documentTypeName;
168            }
169    
170            /**
171             * @return the routeNodeName
172             */
173            public String getRouteNodeName() {
174                    return this.routeNodeName;
175            }
176    
177            /**
178             * @param routeNodeName the routeNodeName to set
179             */
180            public void setRouteNodeName(String routeNodeName) {
181                    this.routeNodeName = routeNodeName;
182            }
183    
184            /**
185             * @return the actionDetailsAtRoleMemberLevel
186             */
187            public boolean isActionDetailsAtRoleMemberLevel() {
188                    return this.actionDetailsAtRoleMemberLevel;
189            }
190    
191            /**
192             * @param actionDetailsAtRoleMemberLevel the actionDetailsAtRoleMemberLevel to set
193             */
194            public void setActionDetailsAtRoleMemberLevel(
195                            boolean actionDetailsAtRoleMemberLevel) {
196                    this.actionDetailsAtRoleMemberLevel = actionDetailsAtRoleMemberLevel;
197            }
198    
199            /**
200             * @return the required
201             */
202            public boolean isRequired() {
203                    return this.required;
204            }
205    
206            /**
207             * @param required the required to set
208             */
209            public void setRequired(boolean required) {
210                    this.required = required;
211            }
212    
213            /**
214             * @return the qualifierResolverProvidedIdentifier
215             */
216            public String getQualifierResolverProvidedIdentifier() {
217                    return this.qualifierResolverProvidedIdentifier;
218            }
219    
220            /**
221             * @param qualifierResolverProvidedIdentifier the qualifierResolverProvidedIdentifier to set
222             */
223            public void setQualifierResolverProvidedIdentifier(
224                            String qualifierResolverProvidedIdentifier) {
225                    this.qualifierResolverProvidedIdentifier = qualifierResolverProvidedIdentifier;
226            }
227    
228            @SuppressWarnings("unchecked")
229            @Override
230            protected LinkedHashMap toStringMapper() {
231                    LinkedHashMap<String,Object> m = new LinkedHashMap<String, Object>();
232                    m.put("responsibilityId", responsibilityId);
233                    m.put("namespaceCode", namespaceCode);
234                    m.put("name", name);
235                    m.put("active", active);
236                    m.put("documentTypeName", documentTypeName);
237                    m.put("routeNodeName", routeNodeName);
238                    m.put("required", required);
239                    m.put("actionDetailsAtRoleMemberLevel", actionDetailsAtRoleMemberLevel);
240                    m.put("qualifierResolverProvidedIdentifier", qualifierResolverProvidedIdentifier);
241                    return m;
242            }
243    
244            public void refresh() {
245                    // do nothing - not a persistable object
246            }
247            
248            @Override
249            public void refreshNonUpdateableReferences() {
250                    // do nothing - not a persistable object
251            }
252            @Override
253            public void refreshReferenceObject(String referenceObjectName) {
254                    // do nothing - not a persistable object
255            }
256    
257            /**
258             * This overridden method ...
259             * 
260             * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#beforeInsert()
261             */
262            @Override
263            @PrePersist
264            public void beforeInsert() {
265                    throw new UnsupportedOperationException( "This object should never be persisted.");
266            }
267            
268            /**
269             * This overridden method ...
270             * 
271             * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#beforeUpdate()
272             */
273            @Override
274            @PreUpdate
275            public void beforeUpdate() {
276                    throw new UnsupportedOperationException( "This object should never be persisted.");
277            }
278            
279            /**
280             * This overridden method ...
281             * 
282             * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#beforeInsert(org.apache.ojb.broker.PersistenceBroker)
283             */
284            @Override
285            public void beforeInsert(PersistenceBroker persistenceBroker)
286                            throws PersistenceBrokerException {
287                    throw new UnsupportedOperationException( "This object should never be persisted.");
288            }
289            
290            /**
291             * This overridden method ...
292             * 
293             * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#beforeUpdate(org.apache.ojb.broker.PersistenceBroker)
294             */
295            @Override
296            public void beforeUpdate(PersistenceBroker persistenceBroker) {
297                    throw new UnsupportedOperationException( "This object should never be persisted.");
298            }
299    
300            /**
301             * This overridden method ...
302             * 
303             * @see org.kuali.rice.kns.bo.PersistableBusinessObjectBase#beforeDelete(org.apache.ojb.broker.PersistenceBroker)
304             */
305            @Override
306            public void beforeDelete(PersistenceBroker persistenceBroker)
307                            throws PersistenceBrokerException {
308                    throw new UnsupportedOperationException( "This object should never be persisted.");
309            }
310    
311            public DocumentTypeEBO getDocumentType() {
312                    return this.documentType;
313            }
314    
315            public void setDocumentType(DocumentTypeEBO documentType) {
316                    this.documentType = documentType;
317            }
318    }