001    /**
002     * Copyright 2005-2012 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.krad.rules.rule.event;
017    
018    import org.kuali.rice.krad.document.Document;
019    import org.kuali.rice.krad.rules.rule.BusinessRule;
020    import org.kuali.rice.krad.rules.rule.BusinessRule;
021    import org.kuali.rice.krad.rules.rule.CompleteDocumentRule;
022    
023    import java.util.ArrayList;
024    import java.util.List;
025    
026    /**
027     * Complete document event
028     *
029     * @author Kuali Rice Team (kuali-rice@googlegroups.com)
030     */
031    public class CompleteDocumentEvent extends KualiDocumentEventBase {
032    
033        /**
034         * Constructs a RouteDocumentEvent with the specified errorPathPrefix and document
035         *
036         * @param errorPathPrefix
037         * @param document
038         */
039        public CompleteDocumentEvent(String errorPathPrefix, Document document) {
040            super("creating complete event for document " + getDocumentId(document), errorPathPrefix, document);
041        }
042    
043        /**
044         * Constructs a RouteDocumentEvent with the given document
045         *
046         * @param document
047         */
048        public CompleteDocumentEvent(Document document) {
049            this("", document);
050        }
051    
052        /**
053         * @see KualiDocumentEvent#getRuleInterfaceClass()
054         */
055        public Class getRuleInterfaceClass() {
056            return CompleteDocumentRule.class;
057        }
058    
059        /**
060         * @see KualiDocumentEvent#invokeRuleMethod(org.kuali.rice.krad.rules.rule.BusinessRule)
061         */
062        public boolean invokeRuleMethod(BusinessRule rule) {
063            return ((CompleteDocumentRule) rule).processCompleteDocument(document);
064        }
065    
066        /**
067         * @see KualiDocumentEvent#generateEvents()
068         */
069        public List generateEvents() {
070            List events = new ArrayList();
071            events.add(new RouteDocumentEvent(getDocument()));
072            return events;
073        }
074    }