1 package rydeen; 2 3 import rydeen.spi.ProcessorService; 4 5 /** 6 * <p> 7 * Rydeenの1処理の基本となるクラスです. 8 * </p> 9 * <p> 10 * 1処理とは{@link TargetSource <code>TargetSource</code>}から順番に 11 * {@link ProcessTarget <code>ProcessTarget</code>}を取り出して処理を施し, 12 * {@link Destination <code>Destination</code>}に出力することを指します. 13 * </p><p> 14 * Rydeenでは1つの {@link TargetSource <code>TargetSource</code>} 15 * を処理するために複数のProcessorが起動します. これを1セッションと呼びます. 16 * 各Processorは1セッションの間,重複しない名前を持ちます. 17 * また,1つのProcessorオブジェクトは1セッションの間に複数回 18 * {@link #execute <code>execute</code>}メソッドが呼び出されます. 19 * </p> 20 * 21 * @author Haruaki Tamada 22 */ 23 public interface Processor{ 24 /** 25 * 1セッションの間,他と重複しない名前を返します. 26 */ 27 public String getId(); 28 29 /** 30 * 1セッションの間,他と重複しない名前を設定します. 31 * @see #getId 32 */ 33 public void setId(String id); 34 35 /** 36 * 処理内容を表す単純な名前を返す. 37 */ 38 public String getProcessorName(); 39 40 /** 41 * <p> 42 * Processorの初期設定を行います. 43 * </p><p> 44 * 初期化のパラメータは{@link #getArguments <code>getArguments</code>} 45 * で返される {@link Arguments <code>Arguments</code>}により行われます. 46 * </p> 47 */ 48 public void init() throws ProcessorException; 49 50 /** 51 * 実際に処理を行います. 52 * 53 * @param source 54 * @param dest 55 * @throws ProcessorException 56 */ 57 public void execute(TargetSource source, Destination dest) throws ProcessorException; 58 59 /** 60 * 終了処理を行います. 61 * @throws ProcessorException 62 */ 63 public void finish() throws ProcessorException; 64 65 /** 66 * サービスプロバイダを返します. 67 * このメソッドは常にnullではない値を返します. 68 */ 69 public ProcessorService getProvider(); 70 71 /** 72 * この処理器の現在設定されているパラメータを返します. 73 */ 74 public Arguments getArguments(); 75 76 /** 77 * この処理器の処理内容を表すオブジェクトを返します. 78 */ 79 public Summary getSummary(); 80 }