001    /*
002     * Copyright 2005-2008 The Kuali Foundation
003     *
004     *
005     * Licensed under the Educational Community License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     *
009     * http://www.opensource.org/licenses/ecl2.php
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.kuali.rice.kew.dto;
018    
019    import java.io.Serializable;
020    import java.util.Calendar;
021    
022    import org.apache.commons.lang.StringUtils;
023    import org.kuali.rice.kew.api.action.ActionRequestStatus;
024    import org.kuali.rice.kew.api.action.RecipientType;
025    import org.kuali.rice.kew.util.KEWConstants;
026    
027    
028    /**
029     * A transport object representing an ActionRequestValue.
030     *
031     * @author Kuali Rice Team (rice.collab@kuali.org)
032     */
033    public class ActionRequestDTO implements Serializable {
034    
035        private final static String ACKNOWLEDGE_REQ = "K";
036        private final static String FYI_REQ = "F";
037        private final static String APPROVE_REQ = "A";
038        private final static String COMPLETE_REQ = "C";
039    
040        static final long serialVersionUID = 1074824814950100121L;
041        private String actionRequestId;
042        private String actionRequested;
043        private String status;
044        private Boolean currentIndicator = Boolean.TRUE;
045        private Calendar dateCreated;
046        private String responsibilityId;
047        private String documentId;
048        private String routeMethodName;
049        private Integer priority;
050        private String annotation;
051        private String actionTakenId;
052        private String groupId;    
053        private String recipientTypeCd;
054        private String approvePolicy;
055        private String responsibilityDesc;
056        private Integer routeLevel;
057        private Integer docVersion;
058        private String roleName;
059        private Boolean forceAction;
060        private String principalId;
061        private String delegationType;
062        private String parentActionRequestId;
063        private String qualifiedRoleName;
064        private String qualifiedRoleNameLabel;
065        private ActionRequestDTO[] childrenRequests;
066        private ActionTakenDTO actionTaken;
067        private String nodeName;
068        private String nodeInstanceId;
069        private String requestLabel;
070    
071        public ActionRequestDTO() {}
072    
073        public String getRoleName() {
074            return roleName;
075        }
076    
077        public void setRoleName(String roleName) {
078            this.roleName = roleName;
079        }
080    
081        public String getActionRequested() {
082            return actionRequested;
083        }
084    
085        public String getActionRequestId() {
086            return actionRequestId;
087        }
088    
089        public String getActionTakenId() {
090            return actionTakenId;
091        }
092    
093        public String getAnnotation() {
094            return annotation;
095        }
096    
097        public Calendar getDateCreated() {
098            return dateCreated;
099        }
100    
101        public Integer getDocVersion() {
102            return docVersion;
103        }
104    
105        public Integer getPriority() {
106            return priority;
107        }
108    
109        public String getResponsibilityDesc() {
110            return responsibilityDesc;
111        }
112    
113        public String getResponsibilityId() {
114            return responsibilityId;
115        }
116    
117        public String getDocumentId() {
118            return documentId;
119        }
120    
121        public Integer getRouteLevel() {
122            return routeLevel;
123        }
124    
125        public String getRouteMethodName() {
126            return routeMethodName;
127        }
128    
129        public String getStatus() {
130            return status;
131        }
132     
133        public void setStatus(String status) {
134            this.status = status;
135        }
136    
137        public void setRouteMethodName(String routeMethodName) {
138            this.routeMethodName = routeMethodName;
139        }
140    
141        public void setRouteLevel(Integer routeLevel) {
142            this.routeLevel = routeLevel;
143        }
144    
145        public void setDocumentId(String documentId) {
146            this.documentId = documentId;
147        }
148    
149        public void setResponsibilityId(String responsibilityId) {
150            this.responsibilityId = responsibilityId;
151        }
152    
153        public void setResponsibilityDesc(String responsibilityDesc) {
154            this.responsibilityDesc = responsibilityDesc;
155        }
156    
157        public void setPriority(Integer priority) {
158            this.priority = priority;
159        }
160    
161        public void setDocVersion(Integer docVersion) {
162            this.docVersion = docVersion;
163        }
164    
165        public void setDateCreated(Calendar dateCreated) {
166            this.dateCreated = dateCreated;
167        }
168    
169        public void setAnnotation(String annotation) {
170            this.annotation = annotation;
171        }
172    
173        public void setActionTakenId(String actionTakenId) {
174            this.actionTakenId = actionTakenId;
175        }
176    
177        public void setActionRequestId(String actionRequestId) {
178            this.actionRequestId = actionRequestId;
179        }
180    
181        public void setActionRequested(String actionRequested) {
182            this.actionRequested = actionRequested;
183        }
184    
185        public String getRecipientTypeCd() {
186            return recipientTypeCd;
187        }
188    
189        public void setRecipientTypeCd(String recipientTypeCd) {
190            this.recipientTypeCd = recipientTypeCd;
191        }
192    
193        public String getApprovePolicy() {
194            return approvePolicy;
195        }
196    
197        public void setApprovePolicy(String approvePolicy) {
198            this.approvePolicy = approvePolicy;
199        }
200    
201        public Boolean getForceAction() {
202            return forceAction;
203        }
204    
205        public boolean isNotificationRequest() {
206            return isAcknowledgeRequest() || isFyiRequest();
207        }
208    
209        public boolean isApprovalRequest() {
210            return APPROVE_REQ.equals(actionRequested) || COMPLETE_REQ.equals(actionRequested);
211        }
212    
213        public Boolean isForceAction() {
214            return forceAction;
215        }
216    
217        public void setForceAction(Boolean forceAction) {
218            this.forceAction = forceAction;
219        }
220    
221        public boolean isAcknowledgeRequest() {
222            return ACKNOWLEDGE_REQ.equals(actionRequested);
223        }
224    
225        public boolean isFyiRequest() {
226            return FYI_REQ.equals(actionRequested);
227        }
228    
229        public boolean isPending() {
230            return isInitialized() || isActivated();
231        }
232    
233        public boolean isCompleteRequest() {
234            return KEWConstants.ACTION_REQUEST_COMPLETE_REQ.equals(actionRequested);
235        }
236    
237        public boolean isInitialized() {
238            return ActionRequestStatus.INITIALIZED.getCode().equals(status);
239        }
240    
241        public boolean isActivated() {
242            return ActionRequestStatus.ACTIVATED.getCode().equals(status);
243        }
244    
245        public boolean isDone() {
246            return ActionRequestStatus.DONE.getCode().equals(status);
247        }
248    
249        public boolean isUserRequest() {
250            return RecipientType.PRINCIPAL.getCode().equals(getRecipientTypeCd());
251        }
252    
253        public boolean isGroupRequest() {
254            return RecipientType.GROUP.getCode().equals(getRecipientTypeCd());
255        }
256    
257        public boolean isRoleRequest() {
258            return RecipientType.ROLE.getCode().equals(getRecipientTypeCd());
259        }
260    
261        public String getPrincipalId() {
262                    return this.principalId;
263            }
264    
265            public void setPrincipalId(String principalId) {
266                    this.principalId = principalId;
267            }
268    
269            public Boolean getCurrentIndicator() {
270            return currentIndicator;
271        }
272    
273        public void setCurrentIndicator(Boolean currentIndicator) {
274            this.currentIndicator = currentIndicator;
275        }
276    
277        public String getDelegationType() {
278            return delegationType;
279        }
280        public void setDelegationType(String delegationType) {
281            this.delegationType = delegationType;
282        }
283    
284        public String getParentActionRequestId() {
285            return parentActionRequestId;
286        }
287        public void setParentActionRequestId(String parentActionRequestId) {
288            this.parentActionRequestId = parentActionRequestId;
289        }
290    
291        public String getQualifiedRoleName() {
292            return qualifiedRoleName;
293        }
294        public void setQualifiedRoleName(String qualifiedRoleName) {
295            this.qualifiedRoleName = qualifiedRoleName;
296        }
297        public String getQualifiedRoleNameLabel() {
298            return qualifiedRoleNameLabel;
299        }
300        public void setQualifiedRoleNameLabel(String qualifiedRoleNameLabel) {
301            this.qualifiedRoleNameLabel = qualifiedRoleNameLabel;
302        }
303    
304            public ActionTakenDTO getActionTaken() {
305                    return actionTaken;
306            }
307    
308            public void setActionTaken(ActionTakenDTO actionTaken) {
309                    this.actionTaken = actionTaken;
310            }
311    
312        public ActionRequestDTO[] getChildrenRequests() {
313            return childrenRequests;
314        }
315        public void setChildrenRequests(ActionRequestDTO[] childrenRequests) {
316            this.childrenRequests = childrenRequests;
317        }
318    
319        public void addChildRequest(ActionRequestDTO childRequest) {
320            if (getChildrenRequests() == null) {
321                    setChildrenRequests(new ActionRequestDTO[0]);
322            }
323            ActionRequestDTO[] newChildrenRequests = new ActionRequestDTO[getChildrenRequests().length+1];
324            System.arraycopy(getChildrenRequests(), 0, newChildrenRequests, 0, getChildrenRequests().length);
325            newChildrenRequests[getChildrenRequests().length] = childRequest;
326            setChildrenRequests(newChildrenRequests);
327        }
328    
329        public String getNodeName() {
330            return nodeName;
331        }
332    
333        public void setNodeName(String nodeName) {
334            this.nodeName = nodeName;
335        }
336    
337        public String getNodeInstanceId() {
338            return nodeInstanceId;
339        }
340    
341        public void setNodeInstanceId(String nodeInstanceId) {
342            this.nodeInstanceId = nodeInstanceId;
343        }
344        
345        public String getGroupId() {
346                    return this.groupId;
347            }
348    
349            public void setGroupId(String groupId) {
350                    this.groupId = groupId;
351            }
352    
353        public boolean isAdHocRequest() {
354            return KEWConstants.ADHOC_REQUEST_RESPONSIBILITY_ID.equals(getResponsibilityId());
355        }
356    
357        public boolean isGeneratedRequest() {
358            return KEWConstants.MACHINE_GENERATED_RESPONSIBILITY_ID.equals(getResponsibilityId());
359        }
360    
361        public boolean isExceptionRequest() {
362            return KEWConstants.EXCEPTION_REQUEST_RESPONSIBILITY_ID.equals(getResponsibilityId());
363        }
364    
365        public boolean isRouteModuleRequest() {
366            // FIXME: KULRICE-5329 : this is probably not the best way to replace the logic below (commented out)
367            return !StringUtils.equals(getResponsibilityId(), "0") && !getResponsibilityId().startsWith("-");
368    //      return getResponsibilityId().longValue() > 0;
369        }
370    
371            public String getRequestLabel() {
372                    return this.requestLabel;
373            }
374    
375            public void setRequestLabel(String requestLabel) {
376                    this.requestLabel = requestLabel;
377            }
378    
379    }