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 }