View Javadoc

1   package rydeen.spi;
2   
3   import rydeen.Arguments;
4   import rydeen.Processor;
5   import rydeen.ProcessorBuildException;
6   import rydeen.utils.Author;
7   import rydeen.utils.Organization;
8   import rydeen.utils.Provider;
9   
10  /**
11   * {@link Processor <code>Processor</code>}を提供するためのSPIです.
12   *
13   * @author Haruaki Tamada
14   */
15  public interface ProcessorService{
16      /**
17       * このSPIが返す{@link Processor <code>Processor</code>}の初期設定値を返します.
18       * 返された{@link Arguments <code>Arguments</code>}オブジェクトを変更しても他に影響を与えません.
19       * @return 初期設定値
20       */
21      public Arguments getDefaultArguments();
22  
23      /**
24       * このSPIが返す{@link Processor <code>Processor</code>}の解説を返します.
25       * @return このSPIが対応するProcessorの解説
26       */
27      public String getDescription();
28  
29      /**
30       * {@link Processor <code>Processor</code>}を返します.
31       * 返されるProcessorのメソッドは並行して呼び出される可能性があります.
32       * そのため,並行して呼び出されても影響を受けないよう,実装しておかなければなりません.
33       * @return 作成されたProcessorオブジェクト
34       */
35      public Processor getProcessor() throws ProcessorBuildException;
36  
37      /**
38       * このSPIが対応する{@link Processor <code>Processor</code>}の名前を返します.
39       * @return 対応するProcessorの名前
40       */
41      public String getProcessorName();
42  
43      /**
44       * このSPI並びに{@link Processor <code>Processor</code>}
45       * の作成者のリストを返します.
46       * @return 作成者のリスト
47       */
48      public Author[] getAuthors();
49  
50      /**
51       * このSPI並びに{@link Processor <code>Processor</code>}
52       * の作成者の団体を返します.
53       * @return 作成者の所属する団体
54       */
55      public Organization getOrganization();
56  
57      /**
58       * このSPI並びに{@link Processor <code>Processor</code>}
59       * の作成者のリストとその団体のオブジェクトを返します.
60       * @return 作成者とその団体を収めたオブジェクト
61       */
62      public Provider getProvider();
63  }