shohaku.core.util
クラス XProperties

java.lang.Object
  拡張shohaku.core.util.XProperties
すべての実装インタフェース:
java.io.Serializable

public class XProperties
extends java.lang.Object
implements java.io.Serializable

拡張可能なプロパティセットを提供します。
拡張が容易あり、直接文字エンコーディングを指定する機能をもつ、以外は標準のプロパティセットと同等の仕様を持ちます。
また Map インターフェースを実装していません。これはプロパティセットは Map のメンバーとは判断出来なかった為です。
異論は有りそうですが、Map 表現を考えるならば、ラッパーによりマップビューを提供する戦略のほうが妥当と考えます。

関連項目:
直列化された形式

フィールドの概要
protected static char[] commentChars
          コメント文を示す文字。
protected static java.lang.String commentPrefix
          コメント文を示す文字。
protected static char continueLineChar
          行の継続を示す文字。
protected static java.nio.charset.Charset DEFAULT_CHARSET
          デフォルトで使用する文字セット(ISO 8859-1).
protected  XProperties defaults
          デフォルトプロパティを保管します。
protected static char escapeChar
          エスケープシーケンス文字
protected static char[] keyValueSeparators
          キーと値の以外の文字。
protected  java.util.Map lookup
          プロパティを保管します。
protected static char[] strictKeyValueSeparators
          キーと値の区切り文字。
protected static char[] whiteSpaceChars
          スペースとして扱う文字。
 
コンストラクタの概要
  XProperties()
          空のプロパティセットを初期化します。
  XProperties(XProperties defaults)
          デフォルトのプロパティセットを格納して初期化します。
protected XProperties(XProperties defaults, java.util.Map lookup)
          拡張ポイントのコンストラクタ。
 
メソッドの概要
protected  java.lang.String appendEscapeChar(java.lang.Object o)
          エスケープシーケンス文字を追加した文字列を返却します。
 boolean containsKey(java.lang.Object key)
          指定されたキーがプロパティに含まれている場合に true を返却します。
protected  boolean continueLine(java.lang.String line)
          次行を現在の行の継続として扱う場合は true を返却します。
protected  java.lang.String deleteEscapeChar(java.lang.String s)
          エスケープシーケンス文字を削除した文字列を返却します。
protected  java.lang.String getCommentPrefix()
          コメント列のプレフィックスを返却します。
 java.util.Iterator getKeys()
          このプロパティにあるすべてのキーの反復子を返却します。
 java.lang.Object getProperty(java.lang.Object key)
          指定されたキーを持つプロパティを、プロパティから探します。
 java.lang.Object getProperty(java.lang.Object key, java.lang.Object defaultValue)
          指定されたキーを持つプロパティを、プロパティから探します。
protected  boolean isEscapeChar(char c)
          エスケープシーケンス文字の以外の場合は true を返却します。
protected  boolean isKeyValueSeparators(char c)
          キーと値の区切り文字の場合は true を返却します。
protected  boolean isNotCommentChars(char c)
          コメント列を示す文字の以外の場合は true を返却します。
protected  boolean isWhiteSpaceChars(char c)
          スペース文字の場合は true を返却します。
 void load(java.io.InputStream inStream)
          入力ストリームからキーと要素が対になったプロパティセットを読み込みます。
 void load(java.io.InputStream inStream, java.nio.charset.Charset charset)
          入力ストリームからキーと要素が対になったプロパティセットを読み込みます。
protected  void loadImpl(java.io.InputStream inStream, java.nio.charset.Charset charset, boolean isEscapes)
          入力ストリームからキーと要素が対になったプロパティを読み込みます。
protected  void putProperty(java.lang.String key, java.lang.String value, boolean isEscapes)
          プロパティを登録します。
 java.lang.Object setProperty(java.lang.Object key, java.lang.Object value)
          プロパティを追加します。
 void store(java.io.OutputStream outStream, java.nio.charset.Charset charset, java.lang.String header)
          出力ストリームにプロパティセットを書き込みます。
 void store(java.io.OutputStream outStream, java.lang.String header)
          出力ストリームにプロパティセットを書き込みます。
protected  void storeImpl(java.io.OutputStream outStream, java.lang.String header, java.nio.charset.Charset charset, boolean isEscapes)
          出力ストリームにプロパティを書き込みます。
protected  void storeProperty(java.lang.StringBuffer buf, java.lang.Object key, java.lang.Object value, boolean isEscapes)
          バッファにプロパティを出力します。
 java.util.Map toMap()
          プロパティセットをマップにコピーして返却します。
 java.util.Map toMap(java.util.Map map)
          プロパティセットをマップにコピーして返却します。
 java.lang.String toString()
          プロパティの文字列表現を返却します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

DEFAULT_CHARSET

protected static final java.nio.charset.Charset DEFAULT_CHARSET
デフォルトで使用する文字セット(ISO 8859-1).


keyValueSeparators

protected static final char[] keyValueSeparators
キーと値の以外の文字。


strictKeyValueSeparators

protected static final char[] strictKeyValueSeparators
キーと値の区切り文字。


commentChars

protected static final char[] commentChars
コメント文を示す文字。


commentPrefix

protected static final java.lang.String commentPrefix
コメント文を示す文字。

関連項目:
定数フィールド値

whiteSpaceChars

protected static final char[] whiteSpaceChars
スペースとして扱う文字。


continueLineChar

protected static final char continueLineChar
行の継続を示す文字。

関連項目:
定数フィールド値

escapeChar

protected static final char escapeChar
エスケープシーケンス文字

関連項目:
定数フィールド値

lookup

protected final java.util.Map lookup
プロパティを保管します。


defaults

protected XProperties defaults
デフォルトプロパティを保管します。

コンストラクタの詳細

XProperties

public XProperties()
空のプロパティセットを初期化します。


XProperties

public XProperties(XProperties defaults)
デフォルトのプロパティセットを格納して初期化します。

パラメータ:
defaults - デフォルトのプロパティセット

XProperties

protected XProperties(XProperties defaults,
                      java.util.Map lookup)
拡張ポイントのコンストラクタ。

パラメータ:
defaults - デフォルトのプロパティセット
lookup - プロパティを格納するマップ
メソッドの詳細

load

public void load(java.io.InputStream inStream)
          throws java.io.IOException
入力ストリームからキーと要素が対になったプロパティセットを読み込みます。
ストリームはデフォルトの ISO 8859-1 文字エンコーディングを使用しているとみなされます。
このエンコーディングに直接表示できない文字には Unicode escapes が使用されます。
ただし、エスケープシーケンスでは 1 文字の「u」だけが使用可能です。
他の文字エンコーディングとプロパティファイルを変換する場合 native2ascii ツールを使用できます。

パラメータ:
inStream - 入力ストリーム
例外:
java.io.IOException - IO例外

load

public void load(java.io.InputStream inStream,
                 java.nio.charset.Charset charset)
          throws java.io.IOException
入力ストリームからキーと要素が対になったプロパティセットを読み込みます。
ストリームは、引数 charset で指定された文字エンコーディングを使用しているとみなされます。

パラメータ:
inStream - 入力ストリーム
charset - 文字エンコーディング
例外:
java.io.IOException - IO例外

store

public void store(java.io.OutputStream outStream,
                  java.lang.String header)
           throws java.io.IOException
出力ストリームにプロパティセットを書き込みます。
ストリームはデフォルトの ISO 8859-1 文字エンコーディングを使用しているとみなされます。

パラメータ:
outStream - 出力ストリーム
header - ヘッダー
例外:
java.io.IOException - IO例外

store

public void store(java.io.OutputStream outStream,
                  java.nio.charset.Charset charset,
                  java.lang.String header)
           throws java.io.IOException
出力ストリームにプロパティセットを書き込みます。
ストリームは、引数 charset で指定された文字エンコーディングを使用しているとみなされます。

パラメータ:
outStream - 出力ストリーム
charset - 文字エンコーディング
header - ヘッダー
例外:
java.io.IOException - IO例外

getKeys

public java.util.Iterator getKeys()
このプロパティにあるすべてのキーの反復子を返却します。

戻り値:
プロパティにあるすべてのキーの反復子

toMap

public java.util.Map toMap()
プロパティセットをマップにコピーして返却します。

戻り値:
プロパティセットをコピーしたマップ

toMap

public java.util.Map toMap(java.util.Map map)
プロパティセットをマップにコピーして返却します。

パラメータ:
map - 格納先のマップ
戻り値:
プロパティセットをコピーした引数のマップ

getProperty

public java.lang.Object getProperty(java.lang.Object key)
指定されたキーを持つプロパティを、プロパティから探します。
プロパティキーがない場合は null が返されます。

パラメータ:
key - プロパティキー
戻り値:
プロパティキーが示す値

getProperty

public java.lang.Object getProperty(java.lang.Object key,
                                    java.lang.Object defaultValue)
指定されたキーを持つプロパティを、プロパティから探します。
プロパティキーがない場合は、デフォルト値の引数が返されます。

パラメータ:
key - プロパティキー
defaultValue - デフォルト値
戻り値:
プロパティキーが示す値または defaultValue

setProperty

public java.lang.Object setProperty(java.lang.Object key,
                                    java.lang.Object value)
プロパティを追加します。

パラメータ:
key - プロパティキー
value - プロパティ値
戻り値:
既存のプロパティ値、既存プロパティが無い場合は null

containsKey

public boolean containsKey(java.lang.Object key)
指定されたキーがプロパティに含まれている場合に true を返却します。

パラメータ:
key - プロパティキー
戻り値:
指定されたキーが含まれている場合は true

toString

public java.lang.String toString()
プロパティの文字列表現を返却します。

戻り値:
プロパティの文字列表現
関連項目:
Object.toString()

loadImpl

protected void loadImpl(java.io.InputStream inStream,
                        java.nio.charset.Charset charset,
                        boolean isEscapes)
                 throws java.io.IOException
入力ストリームからキーと要素が対になったプロパティを読み込みます。
ストリームは、引数 charset で指定された文字エンコーディングを使用しているとみなされます。

パラメータ:
inStream - 入力ストリーム
charset - 文字エンコーディング
isEscapes - ユニコードエスケープが必要な場合は true
例外:
java.io.IOException - 入力ストリームからの読み込み中にエラーが発生した場合

storeImpl

protected void storeImpl(java.io.OutputStream outStream,
                         java.lang.String header,
                         java.nio.charset.Charset charset,
                         boolean isEscapes)
                  throws java.io.IOException
出力ストリームにプロパティを書き込みます。
ストリームは、引数 charset で指定された文字エンコーディングを使用します。

パラメータ:
outStream - 出力ストリーム
header - プロパティのヘッダ
charset - 文字エンコーディング
isEscapes - ユニコードエスケープが必要な場合は true
例外:
java.io.IOException - 出力ストリームからの書き込み中にエラーが発生した場合

putProperty

protected void putProperty(java.lang.String key,
                           java.lang.String value,
                           boolean isEscapes)
                    throws java.io.IOException
プロパティを登録します。

パラメータ:
key - プロパティキー
value - プロパティ値
isEscapes - Unicode escapes を行う場合は true
例外:
java.io.IOException - プロパティの登録中にエラーが発生した場合

storeProperty

protected void storeProperty(java.lang.StringBuffer buf,
                             java.lang.Object key,
                             java.lang.Object value,
                             boolean isEscapes)
                      throws java.io.IOException
バッファにプロパティを出力します。

パラメータ:
buf -
key - プロパティキー
value - プロパティ値
isEscapes - Unicode escapes を行う場合は true
例外:
java.io.IOException - プロパティの出力中にエラーが発生した場合

continueLine

protected boolean continueLine(java.lang.String line)
次行を現在の行の継続として扱う場合は true を返却します。
(行末が '\' である場合は次行を現在の行の継続として扱う)

パラメータ:
line - 検証する行文字列
戻り値:
継続として扱う場合は true

getCommentPrefix

protected java.lang.String getCommentPrefix()
コメント列のプレフィックスを返却します。

戻り値:
コメント列のプレフィックス

isNotCommentChars

protected boolean isNotCommentChars(char c)
コメント列を示す文字の以外の場合は true を返却します。

パラメータ:
c - 検証する文字
戻り値:
コメント列を示す文字の以外の場合は true

isKeyValueSeparators

protected boolean isKeyValueSeparators(char c)
キーと値の区切り文字の場合は true を返却します。

パラメータ:
c - 検証すう文字
戻り値:
キーと値の区切り文字の場合は true

isWhiteSpaceChars

protected boolean isWhiteSpaceChars(char c)
スペース文字の場合は true を返却します。

パラメータ:
c - 検証すう文字
戻り値:
スペース文字の場合は true

isEscapeChar

protected boolean isEscapeChar(char c)
エスケープシーケンス文字の以外の場合は true を返却します。

パラメータ:
c - 検証する文字
戻り値:
エスケープシーケンス文字の以外の場合は true

appendEscapeChar

protected java.lang.String appendEscapeChar(java.lang.Object o)
エスケープシーケンス文字を追加した文字列を返却します。

パラメータ:
o - 変換元のオブジェクト
戻り値:
エスケープシーケンス文字を追加した文字列

deleteEscapeChar

protected java.lang.String deleteEscapeChar(java.lang.String s)
エスケープシーケンス文字を削除した文字列を返却します。

パラメータ:
s - 変換元の文字列
戻り値:
エスケープシーケンス文字を削除した文字列