1 /** 2 * Copyright 2005-2015 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.krad.rules.rule.event; 17 18 import org.kuali.rice.krad.document.Document; 19 import org.kuali.rice.krad.rules.rule.BusinessRule; 20 import org.kuali.rice.krad.rules.rule.RouteDocumentRule; 21 22 import java.util.ArrayList; 23 import java.util.List; 24 25 /** 26 * This class represents the route event that is part of an eDoc in Kuali. This could be triggered when a user presses the route 27 * button for a given document or it could happen when another piece of code calls the route method in the document service. 28 * 29 * 30 */ 31 public final class RouteDocumentEvent extends DocumentEventBase { 32 /** 33 * Constructs a RouteDocumentEvent with the specified errorPathPrefix and document 34 * 35 * @param errorPathPrefix 36 * @param document 37 */ 38 public RouteDocumentEvent(String errorPathPrefix, Document document) { 39 super("creating route event for document " + getDocumentId(document), errorPathPrefix, document); 40 } 41 42 /** 43 * Constructs a RouteDocumentEvent with the given document 44 * 45 * @param document 46 */ 47 public RouteDocumentEvent(Document document) { 48 this("", document); 49 } 50 51 /** 52 * @see org.kuali.rice.krad.rules.rule.event.RuleEvent#getRuleInterfaceClass() 53 */ 54 public Class<? extends BusinessRule> getRuleInterfaceClass() { 55 return RouteDocumentRule.class; 56 } 57 58 /** 59 * @see org.kuali.rice.krad.rules.rule.event.RuleEvent#invokeRuleMethod(org.kuali.rice.krad.rules.rule.BusinessRule) 60 */ 61 public boolean invokeRuleMethod(BusinessRule rule) { 62 return ((RouteDocumentRule) rule).processRouteDocument(document); 63 } 64 65 /** 66 * @see org.kuali.rice.krad.rules.rule.event.RuleEvent#generateEvents() 67 */ 68 @Override 69 public List<RuleEvent> generateEvents() { 70 List<RuleEvent> events = new ArrayList<RuleEvent>(); 71 events.add(new SaveDocumentEvent(getDocument())); 72 return events; 73 } 74 }