Coverage Report - org.kuali.rice.kew.service.WorkflowReports
 
Classes in this File Line Coverage Branch Coverage Complexity
WorkflowReports
0%
0/10
N/A
1
 
 1  
 /*
 2  
  * Copyright 2005-2008 The Kuali Foundation
 3  
  * 
 4  
  * 
 5  
  * Licensed under the Educational Community License, Version 2.0 (the "License");
 6  
  * you may not use this file except in compliance with the License.
 7  
  * You may obtain a copy of the License at
 8  
  * 
 9  
  * http://www.opensource.org/licenses/ecl2.php
 10  
  * 
 11  
  * Unless required by applicable law or agreed to in writing, software
 12  
  * distributed under the License is distributed on an "AS IS" BASIS,
 13  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14  
  * See the License for the specific language governing permissions and
 15  
  * limitations under the License.
 16  
  */
 17  
 package org.kuali.rice.kew.service;
 18  
 
 19  
 import java.io.Serializable;
 20  
 
 21  
 import org.kuali.rice.kew.exception.WorkflowException;
 22  
 
 23  
 
 24  
 public class WorkflowReports implements Serializable {
 25  
 
 26  0
     private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(WorkflowReports.class);
 27  
     
 28  
         private static final long serialVersionUID = 2859218832130678115L;
 29  
         public WorkflowInfo workflowInfo;
 30  
         
 31  0
         public WorkflowReports() {
 32  0
                 workflowInfo = new WorkflowInfo();
 33  0
         }
 34  
         
 35  
     public boolean isUserAuthenticatedByRouteLog(Long routeHeaderId, String principalId, boolean lookFuture) throws WorkflowException {
 36  0
         return workflowInfo.isUserAuthenticatedByRouteLog(routeHeaderId, principalId, lookFuture);
 37  
     }
 38  
     
 39  
     /**
 40  
      * @deprecated use isLastApproverAtNode instead
 41  
      */
 42  
     public boolean isLastApproverInRouteLevel(Long routeHeaderId, String principalId, Integer routeLevel) throws WorkflowException {
 43  0
         return workflowInfo.isLastApproverInRouteLevel(routeHeaderId, principalId, routeLevel);
 44  
     }
 45  
     
 46  
     public boolean isLastApproverAtNode(Long routeHeaderId, String principalId, String nodeName) throws WorkflowException {
 47  0
         return workflowInfo.isLastApproverAtNode(routeHeaderId, principalId, nodeName);
 48  
     }
 49  
     
 50  
     /**
 51  
      * @deprecated use routeNodeHasApproverActionRequest instead
 52  
      */
 53  
     public boolean routeLevelHasApproverActionRequest(String docType, String docContent, Integer routeLevel) throws WorkflowException {
 54  0
         return workflowInfo.routeLevelHasApproverActionRequest(docType, docContent, routeLevel);
 55  
     }
 56  
     
 57  
     public boolean routeNodeHasApproverActionRequest(String docType, String docContent, String nodeName) throws WorkflowException {
 58  0
         return workflowInfo.routeNodeHasApproverActionRequest(docType, docContent, nodeName);
 59  
     }
 60  
     
 61  
     /**
 62  
      * User is considered the final approver for this document.
 63  
      * 
 64  
      * @return True if user context applies to the final approver request for this document.
 65  
      */
 66  
     public boolean isFinalApprover(Long routeHeaderId, String principalId) throws WorkflowException {
 67  0
         return workflowInfo.isFinalApprover(routeHeaderId, principalId);
 68  
     }
 69  
     
 70  
     /*public boolean isUserAuthenticatedByRouteLog(Long routeHeaderId, UserIdVO userId, boolean lookFuture) throws WorkflowException {
 71  
             ReportCriteriaDTO criteria = new ReportCriteriaDTO(routeHeaderId);
 72  
             criteria.setUsersToFilterIn(new UserIdVO[] { userId });
 73  
             RouteHeaderDetailVO detail = workflowInfo.routingReport(criteria);
 74  
             if (isUser(detail.getInitiator(), userId) || detail.getActionsTaken().length > 0) {
 75  
                     return true;
 76  
             }
 77  
             lookFuture = lookFuture && new Boolean(Utilities.getApplicationConstant(KEWConstants.CHECK_ROUTE_LOG_AUTH_FUTURE)).booleanValue();
 78  
             for (int index = 0; index < detail.getActionRequests().length; index++) {
 79  
                     ActionRequestVO actionRequest = detail.getActionRequests()[index];
 80  
                     if (actionRequest.getRouteLevel().intValue() > detail.getDocRouteLevel().intValue() && ! lookFuture) {
 81  
                             continue;
 82  
                     }
 83  
                     return true;
 84  
             }
 85  
             return false;
 86  
     }
 87  
     
 88  
     public boolean isLastApproverInRouteLevel(Long routeHeaderId, UserIdVO userId, Integer routeLevel) throws WorkflowException {
 89  
             ReportCriteriaDTO criteria = new ReportCriteriaDTO(routeHeaderId, new Integer(0), routeLevel);
 90  
             RouteHeaderDetailVO detail = workflowInfo.routingReport(criteria);
 91  
             ActionTakenVO actionTaken = new ActionTakenVO();
 92  
             actionTaken.setActionTaken(KEWConstants.ACTION_TAKEN_APPROVED_CD);
 93  
             actionTaken.setRouteHeaderId(routeHeaderId);
 94  
             actionTaken.setUserVO(workflowInfo.getWorkflowUser(userId));
 95  
             actionTaken.setActionDate(Calendar.getInstance());
 96  
             RouteHeaderDetailVO resultDetail = workflowInfo.routingSimulation(detail, new ActionTakenVO[] { actionTaken });
 97  
             boolean lastApprover = true;
 98  
             // see if there are any non-deactivated requests left at this level
 99  
             for (int index = 0; index < resultDetail.getActionRequests().length; index++) {
 100  
                         ActionRequestVO request = resultDetail.getActionRequests()[index];
 101  
                         if (request.getRouteLevel().equals(routeLevel) && !KEWConstants.ACTION_REQUEST_DONE_STATE.equals(request.getStatus())) {
 102  
                                 lastApprover = false;
 103  
                                 break;
 104  
                         }
 105  
                 }
 106  
             return lastApprover;
 107  
             //return workflowInfo.isLastApproverInRouteLevel(routeHeaderId, userId, routeLevel);    
 108  
     }
 109  
     
 110  
     public boolean routeLevelHasApproverActionRequest(String docType, String docContent, Integer routeLevel) throws WorkflowException {
 111  
             //DocumentContentVO documentContent = new DocumentContentVO();
 112  
             //documentContent.setAttributeContent(docContent);
 113  
             ReportCriteriaDTO criteria = new ReportCriteriaDTO(docType, docContent, routeLevel, routeLevel);
 114  
             RouteHeaderDetailVO detail = workflowInfo.routingReport(criteria);
 115  
             for (int index = 0; index < detail.getActionRequests().length; index++) {
 116  
                         ActionRequestVO actionRequest = detail.getActionRequests()[index];
 117  
                         if (actionRequest.isApprovalRequest()) {
 118  
                                 return true;
 119  
                         }
 120  
                 }
 121  
             return false;
 122  
     }
 123  
     
 124  
     public boolean hasMember(WorkgroupVO workgroup, UserVO user) {
 125  
             UserVO[] users = workgroup.getMembers();
 126  
             for (int index = 0; index < users.length; index++) {
 127  
                     UserVO workgroupUser = users[index];
 128  
                     if (user.getNetworkId().equals(workgroupUser.getNetworkId())) {
 129  
                             return true;
 130  
                     }
 131  
             }
 132  
             return false;
 133  
     }
 134  
     
 135  
     private boolean isUser(UserVO user, UserIdVO userId) {
 136  
             boolean isUser = false;
 137  
             if (userId instanceof EmplIdVO) {
 138  
                     isUser = ((EmplIdVO)userId).getEmplId().equals(user.getEmplId());
 139  
             } else if (userId instanceof NetworkIdVO) {
 140  
                     isUser = ((NetworkIdVO)userId).getNetworkId().equals(user.getNetworkId());
 141  
             } else if (userId instanceof UuIdVO) {
 142  
                     isUser = ((UuIdVO)userId).getUuId().equals(user.getUuId());
 143  
             } else if (userId instanceof WorkflowIdVO) {
 144  
                     isUser = ((WorkflowIdVO)userId).getWorkflowId().equals(user.getWorkflowId());
 145  
             }
 146  
             return isUser;
 147  
     }*/
 148  
         
 149  
 }