001 /* 002 * Copyright (c) 2007-2014 Concurrent, Inc. All Rights Reserved. 003 * 004 * Project and contact information: http://www.cascading.org/ 005 * 006 * This file is part of the Cascading project. 007 * 008 * Licensed under the Apache License, Version 2.0 (the "License"); 009 * you may not use this file except in compliance with the License. 010 * You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, software 015 * distributed under the License is distributed on an "AS IS" BASIS, 016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 017 * See the License for the specific language governing permissions and 018 * limitations under the License. 019 */ 020 021 package cascading.flow; 022 023 /** Interface FlowStepListener provides hooks for receiving events on various stages of a {@link FlowStep} execution. */ 024 public interface FlowStepListener 025 { 026 /** 027 * The onStarting event is fired when a given {@link cascading.flow.FlowStep} job has been submitted i.e. to hadoop cluster 028 * 029 * @param flowStep 030 */ 031 public void onStepStarting( FlowStep flowStep ); 032 033 /** 034 * The onStepStopping event is fired when a given {@link cascading.flow.FlowStep} job is stopped 035 * 036 * @param flowStep 037 */ 038 public void onStepStopping( FlowStep flowStep ); 039 040 /** 041 * The onStepRunning event is fired when a given {@link cascading.flow.FlowStep} moves into the running state 042 * 043 * @param flowStep 044 */ 045 public void onStepRunning( FlowStep flowStep ); 046 047 /** 048 * The onStepCompleted event is fired when a flowStepJob completed its work 049 * 050 * @param flowStep 051 */ 052 public void onStepCompleted( FlowStep flowStep ); 053 054 /** 055 * The onStepThrowable event is fired if a given {@link cascading.flow.FlowStep} throws a Throwable type. This throwable is passed 056 * as an argument to the event. This event method should return true if the given throwable was handled and should 057 * not be rethrown from the {@link Flow#complete()} method. 058 * 059 * @param flowStep 060 * @param throwable 061 * @return returns true if this listener has handled the given throwable 062 */ 063 public boolean onStepThrowable( FlowStep flowStep, Throwable throwable ); 064 }