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.AddCollectionLineRule; 20 import org.kuali.rice.krad.rules.rule.BusinessRule; 21 22 /** 23 * Defines the add collection line event fired when a user adds a line in a collection in a document. 24 * 25 * @author Kuali Rice Team (rice.collab@kuali.org) 26 */ 27 public class AddCollectionLineEvent extends DocumentEventBase { 28 29 private String collectionName; 30 private Object addLine; 31 32 /** 33 * Constructs an event for a document adding a line to the collection with the name {@code collectionName}. 34 * 35 * @param document the document containing the collection objects 36 * @param collectionName the name of the collection object 37 * @param addLine the object being added to the collection 38 */ 39 public AddCollectionLineEvent(Document document, String collectionName, Object addLine) { 40 this("", document, collectionName, addLine); 41 } 42 43 /** 44 * Constructs an event for a document adding a line to the collection with the name {@code collectionName} with a 45 * specific {@code errorPathPrefix}. 46 * 47 * @param errorPathPrefix the prefix to add to the error path for reporting messages 48 * @param document the document containing the collection objects 49 * @param collectionName the name of the collection object 50 * @param addLine the object being added to the collection 51 */ 52 public AddCollectionLineEvent(String errorPathPrefix, Document document, String collectionName, Object addLine) { 53 this("approve", errorPathPrefix, document, collectionName, addLine); 54 } 55 56 /** 57 * Constructs an event for a document adding a line to the collection with the name {@code collectionName} with a 58 * specific {@code errorPathPrefix} and {@code eventType}. 59 * 60 * @param eventType the name of the type of event 61 * @param errorPathPrefix the prefix to add to the error path for reporting messages 62 * @param document the document containing the collection objects 63 * @param collectionName the name of the collection object 64 * @param addLine the object being added to the collection 65 */ 66 protected AddCollectionLineEvent(String eventType, String errorPathPrefix, Document document, String collectionName, Object addLine) { 67 super("creating " + eventType + " event for document " + DocumentEventBase.getDocumentId(document), errorPathPrefix, document); 68 69 this.collectionName = collectionName; 70 this.addLine = addLine; 71 } 72 73 /** 74 * {@inheritDoc} 75 * 76 * Specifies that this class returns the {@link AddCollectionLineRule} class. 77 */ 78 @Override 79 public Class<AddCollectionLineRule> getRuleInterfaceClass() { 80 return AddCollectionLineRule.class; 81 } 82 83 /** 84 * {@inheritDoc} 85 * 86 * Invokes the specific rule in {@link AddCollectionLineRule}. 87 */ 88 @Override 89 public boolean invokeRuleMethod(BusinessRule rule) { 90 return ((AddCollectionLineRule) rule).processAddCollectionLine(this); 91 } 92 93 /** 94 * The name of the collection being added to. 95 * 96 * @return the collection name 97 */ 98 public String getCollectionName() { 99 return collectionName; 100 } 101 102 /** 103 * The object being added to the collection. 104 * 105 * @return the added object 106 */ 107 public Object getAddLine() { 108 return addLine; 109 } 110 111 }