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 }