1 package br.com.ibnetwork.guara.pipeline.valve; 2 3 import org.apache.commons.logging.Log; 4 import org.apache.commons.logging.LogFactory; 5 6 import br.com.ibnetwork.guara.pipeline.Pipeline; 7 import br.com.ibnetwork.guara.pipeline.PipelineException; 8 import br.com.ibnetwork.guara.pipeline.Valve; 9 import br.com.ibnetwork.guara.rundata.RunData; 10 11 /*** 12 * @author <a href="mailto:leandro@ibnetwork.com.br">leandro</a> 13 */ 14 public abstract class ValveSupport 15 implements Valve 16 { 17 protected String name; 18 19 protected Pipeline pipeline; 20 21 protected Log log = LogFactory.getLog(this.getClass()); 22 23 public String getName() 24 { 25 return name; 26 } 27 28 public void setName(String name) 29 { 30 this.name = name; 31 } 32 33 public Pipeline getPipeline() 34 { 35 return pipeline; 36 } 37 38 public void setPipeline(Pipeline pipeline) 39 { 40 this.pipeline = pipeline; 41 } 42 43 /*** 44 * Execute next valve in pipeline 45 */ 46 private void keepGoing(RunData data) 47 { 48 Valve next = pipeline.getNextValve(this); 49 if(next != null) 50 { 51 next.forward(data); 52 } 53 } 54 55 public final void forward(RunData data) 56 throws PipelineException 57 { 58 boolean result = execute(data); 59 if(result == true) 60 { 61 keepGoing(data); 62 } 63 } 64 65 protected abstract boolean execute(RunData data) 66 throws PipelineException; 67 68 }