public final class ClassTraversal
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static interface |
ClassTraversal.ClassHandler
クラスを横断して処理するためのハンドラインタフェース。
|
Modifier and Type | Method and Description |
---|---|
static void |
forEach(java.io.File rootDir,
java.lang.String rootPackage,
ClassTraversal.ClassHandler handler)
ファイルシステム配下の指定されたルートパッケージ以下のクラスを処理する。
|
static void |
forEach(java.util.jar.JarFile jarFile,
ClassTraversal.ClassHandler handler)
jarファイルに含まれるクラスを処理する。
|
static void |
forEach(java.util.jar.JarFile jarFile,
java.lang.String prefix,
ClassTraversal.ClassHandler handler)
jarファイルに含まれるクラスを処理する。
|
public static void forEach(java.io.File rootDir, java.lang.String rootPackage, ClassTraversal.ClassHandler handler)
rootDir
- ルートディレクトリrootPackage
- ルートパッケージhandler
- クラスを処理するハンドラpublic static void forEach(java.util.jar.JarFile jarFile, ClassTraversal.ClassHandler handler)
指定されたjarファイルの拡張子がwar
の場合は、 jarファイル内のエントリのうち、
接頭辞WEB-INF/classes
で始まるパスを持つクラスが対象となる。
クラスを処理するハンドラには、接頭辞を除くエントリ名が渡される。
例えばjarファイル内に/WEB-INF/classes/ccc/ddd/Eee.class
というクラスファイルが存在すると、
ハンドラにはパッケージ名ccc.ddd
およびクラス名Eee
が渡される。
jarFile
- Jarファイルhandler
- クラスを処理するハンドラpublic static void forEach(java.util.jar.JarFile jarFile, java.lang.String prefix, ClassTraversal.ClassHandler handler)
jarファイル内のエントリのうち、接頭辞で始まるパスを持つクラスが処理対象となる。
クラスを処理するハンドラには、接頭辞を除くエントリ名が渡される。 例えば接頭辞が/aaa/bbb/
で、jarファイル内に /aaa/bbb/ccc/ddd/Eee.class
というクラスファイルが存在すると、
ハンドラには パッケージ名ccc.ddd
およびクラス名Eee
が渡される。
jarFile
- Jarファイルprefix
- トラバースするリソースの名前が含む接頭辞。スラッシュ('/')で終了していなければなりません。handler
- クラスを処理するハンドラ