Mirror API

com.sun.mirror.util
クラス DeclarationFilter

java.lang.Object
  上位を拡張 com.sun.mirror.util.DeclarationFilter

public class DeclarationFilter
extends Object

宣言のコレクションから必要な項目を選択するためのフィルタ。フィルタは、宣言を「選択する」または宣言に「一致する」というように表現されます。フィルタは複数の方法で生成できます。これらの方法には、次に示す静的方法、既存のフィルタの無効化または合成による方法、任意のマッチング規則を実装するサブクラスによる方法などがあります。

サブクラスは、matches(Declaration) メソッドを実装して簡単に任意のフィルタを生成できます。

コレクションからの public 宣言の選択

 result = FILTER_PUBLIC.filter(decls);
                
クラス宣言の選択 (enum を含む)
 classFilter = DeclarationFilter.getFilter(ClassDeclaration.class);
 result = classFilter.filter(decls);
                
クラス宣言の選択 (enum を除く)
 enumFilter = DeclarationFilter.getFilter(EnumDeclaration.class);
 compoundFilter = classFilter.and(enumFilter.not());
 result = compoundFilter.filter(decls);
                
Bob という名前の宣言の選択
 nameFilter = new DeclarationFilter() { public boolean matches(Declaration d) { return d.getSimpleName().equals("Bob");
 } };
 result = nameFilter.filter(decls);
                

導入されたバージョン:
1.5

フィールドの概要
static DeclarationFilter FILTER_PACKAGE
          package-private (デフォルト) 宣言だけを選択するフィルタ。
static DeclarationFilter FILTER_PRIVATE
          private 宣言だけを選択するフィルタ。
static DeclarationFilter FILTER_PROTECTED
          protected 宣言だけを選択するフィルタ。
static DeclarationFilter FILTER_PUBLIC
          public 宣言だけを選択するフィルタ。
static DeclarationFilter FILTER_PUBLIC_OR_PROTECTED
          public または protected 宣言だけを選択するフィルタ。
 
コンストラクタの概要
DeclarationFilter()
          すべての宣言を選択する識別フィルタを構築します。
 
メソッドの概要
 DeclarationFilter and(DeclarationFilter f)
          このフィルタと別のフィルタの両方により選択された宣言を選択するフィルタを返します。
<D extends Declaration>
Collection<D>
filter(Collection<? extends Declaration> decls, Class<D> resType)
          結果を特定の種類の宣言に制限して、このフィルタに一致する宣言を返します。
<D extends Declaration>
Collection<D>
filter(Collection<D> decls)
          このフィルタに一致する宣言を返します。
static DeclarationFilter getFilter(Class<? extends Declaration> kind)
          特定の種類の宣言を選択するフィルタを返します。
static DeclarationFilter getFilter(Collection<Modifier> mods)
          修飾子のコレクションをすべて含む宣言を選択するフィルタを返します。
 boolean matches(Declaration decl)
          このフィルタが特定の宣言に一致するかどうかをテストします。
 DeclarationFilter not()
          このフィルタが選択していない宣言を選択するフィルタを返します。
 DeclarationFilter or(DeclarationFilter f)
          このフィルタまたは別のフィルタのどちらかにより選択された宣言を選択するフィルタを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FILTER_PUBLIC

public static final DeclarationFilter FILTER_PUBLIC
public 宣言だけを選択するフィルタ。


FILTER_PROTECTED

public static final DeclarationFilter FILTER_PROTECTED
protected 宣言だけを選択するフィルタ。


FILTER_PUBLIC_OR_PROTECTED

public static final DeclarationFilter FILTER_PUBLIC_OR_PROTECTED
public または protected 宣言だけを選択するフィルタ。


FILTER_PACKAGE

public static final DeclarationFilter FILTER_PACKAGE
package-private (デフォルト) 宣言だけを選択するフィルタ。


FILTER_PRIVATE

public static final DeclarationFilter FILTER_PRIVATE
private 宣言だけを選択するフィルタ。

コンストラクタの詳細

DeclarationFilter

public DeclarationFilter()
すべての宣言を選択する識別フィルタを構築します。

メソッドの詳細

getFilter

public static DeclarationFilter getFilter(Collection<Modifier> mods)
修飾子のコレクションをすべて含む宣言を選択するフィルタを返します。

パラメータ:
mods - 一致する修飾子 (null 以外)
戻り値:
mods を含む宣言に一致するフィルタ

getFilter

public static DeclarationFilter getFilter(Class<? extends Declaration> kind)
特定の種類の宣言を選択するフィルタを返します。たとえば、クラス宣言だけまたはフィールドだけを選択するフィルタがあるとします。フィルタは、指定された種類の宣言を選択し、その種類のサブタイプも選択します。またフィールドフィルタは enum 定数も選択します。

パラメータ:
kind - 選択する宣言の種類
戻り値:
特定の種類の宣言を選択するフィルタ

and

public DeclarationFilter and(DeclarationFilter f)
このフィルタと別のフィルタの両方により選択された宣言を選択するフィルタを返します。

パラメータ:
f - このフィルタと合成されるフィルタ
戻り値:
このフィルタと別のフィルタの両方により選択された宣言を選択するフィルタ

or

public DeclarationFilter or(DeclarationFilter f)
このフィルタまたは別のフィルタのどちらかにより選択された宣言を選択するフィルタを返します。

パラメータ:
f - このフィルタと合成されるフィルタ
戻り値:
このフィルタまたは別のフィルタのどちらかにより選択された宣言を選択するフィルタ

not

public DeclarationFilter not()
このフィルタが選択していない宣言を選択するフィルタを返します。

戻り値:
このフィルタが選択していない宣言を選択するフィルタ

matches

public boolean matches(Declaration decl)
このフィルタが特定の宣言に一致するかどうかをテストします。デフォルトの実装は常に true を返します。サブクラスはこれをオーバーライドします。

パラメータ:
decl - 一致する宣言
戻り値:
このフィルタが特定の宣言に一致する場合は true

filter

public <D extends Declaration> Collection<D> filter(Collection<D> decls)
このフィルタに一致する宣言を返します。結果は引数と同じ型のコレクションになります。filter2 パラメータバージョンは結果の型を制御します。

型パラメータ:
D - フィルタ処理されている宣言の型
パラメータ:
decls - フィルタ処理されている宣言
戻り値:
フィルタに一致する宣言

filter

public <D extends Declaration> Collection<D> filter(Collection<? extends Declaration> decls,
                                                    Class<D> resType)
結果を特定の種類の宣言に制限して、このフィルタに一致する宣言を返します。filter単一パラメータバージョンと同様ですが、結果の型は明示的に指定されます。

型パラメータ:
D - 返される宣言の型
パラメータ:
decls - フィルタ処理される宣言
resType - D のリフレクションの観点から、返される宣言の型
戻り値:
指定した型の宣言に制限された、このフィルタに一致する宣言

Mirror API

バグや機能要求の報告
Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.