|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object org.seasar.util.io.TraversalUtil
public abstract class TraversalUtil
ファイルシステム上やJarファイル中に展開されている、クラスやリソースの集まりを横断的に処理するためのユーティリティです。
対象となるファイルシステム上のディレクトリや、Jarファイルの一などはURL
によって与えられます。 URLのプロトコルに応じて適切な
Traverser
が返されるので、そのメソッドを呼び出すことでクラスやリソースをトラバースすることが出来ます。
次のプロトコルをサポートしています。
URLUtil.toCanonicalProtocol(String)
,
ClassTraversalUtil
,
ResourceTraversalUtil
入れ子のクラスの概要 | |
---|---|
static class |
TraversalUtil.FileSystemTraverser
ファイルシステム上のリソースの集まりを扱うオブジェクトです。 |
static class |
TraversalUtil.JarFileTraverser
Jarファイル中のリソースの集まりを扱うオブジェクトです。 |
static interface |
TraversalUtil.TraverserFactory
Traverser のインスタンスを作成するファクトリです。 |
static class |
TraversalUtil.VfsZipTraverser
JBossAS5のvfszipプロトコルで表されるリソースの集まりを扱うオブジェクトです。 |
フィールドの概要 | |
---|---|
protected static Traverser[] |
EMPTY_ARRAY
空の Traverser の配列です。 |
protected static ConcurrentMap<String,TraversalUtil.TraverserFactory> |
traverserFactories
URLのプロトコルをキー、 TraversalUtil.TraverserFactory を値とするマッピングです。 |
コンストラクタの概要 | |
---|---|
TraversalUtil()
|
メソッドの概要 | |
---|---|
static void |
addTraverserFactory(String protocol,
TraversalUtil.TraverserFactory factory)
TraversalUtil.TraverserFactory を追加します。 |
protected static File |
getBaseDir(URL url,
String baseName)
ファイルを表すURLからルートパッケージの上位となるベースディレクトリを求めて返します。 |
static Traverser |
getTraverser(Class<?> referenceClass)
指定のクラスを基点とする、リソースやクラスの集まりを扱う Traverser を返します。 |
static Traverser |
getTraverser(String rootDir)
指定のディレクトリを基点とする、クラスやリソースの集まりを扱う Traverser を返します。 |
protected static Traverser |
getTraverser(URL url,
String rootPackage,
String rootDir)
URLを扱う Traverser を作成して返します。 |
static Traverser[] |
getTraversers(String rootPackage)
指定のルートパッケージを基点とする、クラスやリソースの集まりを扱う Traverser の配列を返します。 |
protected static String |
toClassFile(String className)
クラス名をクラスファイルのパス名に変換して返します。 |
protected static String |
toDirectoryName(String packageName)
パッケージ名をディレクトリ名に変換して返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
protected static final Traverser[] EMPTY_ARRAY
Traverser
の配列です。
protected static final ConcurrentMap<String,TraversalUtil.TraverserFactory> traverserFactories
TraversalUtil.TraverserFactory
を値とするマッピングです。
コンストラクタの詳細 |
---|
public TraversalUtil()
メソッドの詳細 |
---|
public static void addTraverserFactory(String protocol, TraversalUtil.TraverserFactory factory)
TraversalUtil.TraverserFactory
を追加します。
protocol
- URLのプロトコル。nullや空文字列であってはいけませんfactory
- プロトコルに対応するTraverser
のファクトリ。nullであってはいけませんpublic static Traverser getTraverser(Class<?> referenceClass)
Traverser
を返します。
このメソッドが返すTraverser
は、指定されたクラスをFQNで参照可能なパスをルートとします。 例えば指定されたクラスが
foo.Bar
で、そのクラスファイルが classes/foo/Bar.class
の場合、
このメソッドが返す Traverser
はclasses
ディレクトリ以下のリソースの集合を扱います。
referenceClass
- 基点となるクラス。nullであってはいけません
Traverser
public static Traverser getTraverser(String rootDir)
Traverser
を返します。
rootDir
- ルートディレクトリ。nullや空文字列であってはいけません
Traverser
public static Traverser[] getTraversers(String rootPackage)
Traverser
の配列を返します。
rootPackage
- ルートパッケージ
Traverser
の配列protected static Traverser getTraverser(URL url, String rootPackage, String rootDir)
Traverser
を作成して返します。
URLのプロトコルが未知の場合はnull
を返します。
url
- リソースのURLrootPackage
- ルートパッケージrootDir
- ルートディレクトリ
Traverser
protected static String toDirectoryName(String packageName)
packageName
- パッケージ名
protected static String toClassFile(String className)
className
- クラス名
protected static File getBaseDir(URL url, String baseName)
url
- ファイルを表すURLbaseName
- ベース名
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |