1 package rydeen;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5
6 /**
7 * Rydeenの処理対象となるものを表すためのインターフェースです.
8 *
9 * @author Haruaki Tamada
10 */
11 public interface ProcessTarget{
12 /**
13 * <p>
14 * このProcessTargetの名前を返します.
15 * 1セッションの間,このメソッドが返す名前と,このオブジェクトが所属するTargetSourceによって,
16 * ProcessTargetを一意に特定できます.
17 * </p>
18 *
19 * @return このProcessTargetの名前
20 */
21 public String getName();
22
23 /**
24 * <p>
25 * このProcessTargetがクラスファイルであった場合,クラス名を返します.
26 * このメソッドで得られた名前は他のProcessTargetと重複する可能性があります.
27 * </p><p>
28 * このProcessTargetがクラスファイルでない場合(getTypeがTargetType.CLASS_FILE以外を返す場合),
29 * このメソッドはIllegalStateExceptionが投げられます.
30 * </p>
31 *
32 * @return このProcessTargetが表すクラスの名前
33 */
34 public String getClassName();
35
36 /**
37 * このProcessTargetのデータを読み込むための入力ストリームを返します.
38 *
39 * @return 入力ストリーム
40 * @throws IOException 入出力エラーが起こった場合
41 */
42 public InputStream getSource() throws IOException;
43
44 /**
45 * このProcessTargetの種類を返します.
46 *
47 * @return このオブジェクトの種類
48 * @see TargetType
49 */
50 public TargetType getType();
51
52 /**
53 * このProcessTargetが所属するProcessTargetを返します.
54 */
55 public TargetSource getTargetSource();
56 }