org.seasar.util.io
クラス CopyUtil

java.lang.Object
  上位を拡張 org.seasar.util.io.CopyUtil

public abstract class CopyUtil
extends Object

コピーのためのユーティリティです。

コピー可能な入力と出力の組み合わせと、コピーされる要素の単位は以下のとおりです。

入力の型 出力の型
OutputStream Writer File StringBuilder
InputStream バイト 文字 バイト、文字 文字
Reader 文字 文字 文字 文字
File バイト 文字 バイト、文字 文字
URL バイト 文字 バイト、文字 文字
byte[] バイト 文字 バイト、文字 文字
String 文字 文字 文字 ×

引数にInputStream/OutputStream/Reader/Writer を受け取るメソッドは、 どれも引数に対してCloseable.close()を呼び出しません。 クローズする責務は呼び出し側にあります。

どのメソッドも発生したIOExceptionIORuntimeExceptionにラップしてスローされます。

作成者:
koichik

フィールドの概要
protected static int DEFAULT_BUF_SIZE
          コピーで使用するバッファサイズ
 
コンストラクタの概要
CopyUtil()
           
 
メソッドの概要
static int copy(byte[] in, File out)
          バイト配列からファイルへコピーします。
static int copy(byte[] in, File out, String encoding)
          プラットフォームデフォルトエンコーディングのバイト配列から指定されたエンコーディングのファイルへコピーします。
static int copy(byte[] in, OutputStream out)
          バイト配列から出力ストリームへコピーします。
static int copy(byte[] in, StringBuilder out)
          プラットフォームのデフォルトエンコーディングでバイト配列からStringBuilderへコピーします。
static int copy(byte[] in, String encoding, File out)
          指定されたエンコーディングのバイト配列からプラットフォームデフォルトエンコーディングのファイルへコピーします。
static int copy(byte[] in, String inputEncoding, File out, String outputEncoding)
          指定されたエンコーディングのバイト配列から指定されたエンコーディングのファイルへコピーします。
static int copy(byte[] in, String encoding, StringBuilder out)
          指定されたエンコーディングのバイト配列からプラットフォームデフォルトエンコーディングのStringBuilderへコピーします。
static int copy(byte[] in, String encoding, Writer out)
          指定されたエンコーディングでバイト配列からライターへコピーします。
static int copy(byte[] in, Writer out)
          プラットフォームのデフォルトエンコーディングでバイト配列からライターへコピーします。
static int copy(File in, File out)
          ファイルからファイルへコピーします。
static int copy(File in, File out, String encoding)
          プラットフォームデフォルトエンコーディングのファイルから指定されたエンコーディングのファイルへコピーします。
static int copy(File in, OutputStream out)
          ファイルから出力ストリームへコピーします。
static int copy(File in, StringBuilder out)
          プラットフォームのデフォルトエンコーディングでファイルからStringBuilderへコピーします。
static int copy(File in, String encoding, File out)
          指定されたエンコーディングのファイルからプラットフォームデフォルトエンコーディングのファイルへコピーします。
static int copy(File in, String inputEncoding, File out, String outputEncoding)
          指定されたエンコーディングのファイルから指定されたエンコーディングのファイルへコピーします。
static int copy(File in, String encoding, StringBuilder out)
          指定されたエンコーディングでファイルからStringBuilderへコピーします。
static int copy(File in, String encoding, Writer out)
          指定のエンコーディングでファイルからライターへコピーします。
static int copy(File in, Writer out)
          プラットフォームのデフォルトエンコーディングでファイルからライターへコピーします。
static int copy(InputStream in, File out)
          入力ストリームからファイルへコピーします。
static int copy(InputStream in, OutputStream out)
          入力ストリームから出力ストリームへコピーします。
static int copy(InputStream in, StringBuilder out)
          プラットフォームのデフォルトエンコーディングで入力ストリームからStringBuilderへコピーします。
static int copy(InputStream in, String encoding, StringBuilder out)
          指定のエンコーディングで入力ストリームからStringBuilderへコピーします。
static int copy(InputStream in, String encoding, Writer out)
          指定のエンコーディングで入力ストリームからライターへコピーします。
static int copy(InputStream in, Writer out)
          プラットフォームのデフォルトエンコーディングで入力ストリームからライターへコピーします。
static int copy(Reader in, File out)
          プラットフォームのデフォルトエンコーディングでリーダーからファイルへコピーします。
static int copy(Reader in, File out, String encoding)
          指定のエンコーディングでリーダーからファイルへコピーします。
static int copy(Reader in, OutputStream out)
          プラットフォームのデフォルトエンコーディングでリーダーから出力ストリームへコピーします。
static int copy(Reader in, OutputStream out, String encoding)
          指定のエンコーディングでリーダーから出力ストリームへコピーします。
static int copy(Reader in, StringBuilder out)
          リーダーからStringBuilderへコピーします。
static int copy(Reader in, Writer out)
          リーダーからライターへコピーします。
static int copy(String in, File out)
          プラットフォームのデフォルトエンコーディングで文字列をファイルへコピーします。
static int copy(String in, File out, String encoding)
          指定されたエンコーディングで文字列をファイルへコピーします。
static int copy(String in, OutputStream out)
          プラットフォームのデフォルトエンコーディングで文字列を出力ストリームへコピーします。
static int copy(String in, OutputStream out, String encoding)
          指定されたエンコーディングで文字列を出力ストリームへコピーします。
static int copy(String in, Writer out)
          文字列をライターへコピーします。
static int copy(URL in, File out)
          URLからファイルへコピーします。
static int copy(URL in, File out, String encoding)
          プラットフォームデフォルトエンコーディングのURLから指定されたエンコーディングのファイルへコピーします。
static int copy(URL in, OutputStream out)
          URLから出力ストリームへコピーします。
static int copy(URL in, StringBuilder out)
          プラットフォームのデフォルトエンコーディングでURLからStringBuilderへコピーします。
static int copy(URL in, String encoding, File out)
          指定されたエンコーディングのURLからプラットフォームデフォルトエンコーディングのファイルへコピーします。
static int copy(URL in, String inputEncoding, File out, String outputEncoding)
          指定されたエンコーディングのURLから指定されたエンコーディングのファイルへコピーします。
static int copy(URL in, String encoding, StringBuilder out)
          指定されたエンコーディングでURLからStringBuilderへコピーします。
static int copy(URL in, String encoding, Writer out)
          指定のエンコーディングでURLからライターへコピーします。
static int copy(URL in, Writer out)
          プラットフォームのデフォルトエンコーディングでURLからライターへコピーします。
protected static int copyInternal(FileInputStream in, FileOutputStream out)
          ファイル入力ストリームの内容をファイル出力ストリームにコピーします。
protected static int copyInternal(FileInputStream in, OutputStream out)
          ファイル入力ストリームの内容を出力ストリームにコピーします。
protected static int copyInternal(InputStream in, FileOutputStream out)
          入力ストリームの内容をファイル出力ストリームにコピーします。
protected static int copyInternal(InputStream in, OutputStream out)
          入力ストリームの内容を出力ストリームにコピーします。
protected static int copyInternal(Reader in, StringBuilder out)
          リーダーの内容をStringBuilderにコピーします。
protected static int copyInternal(Reader in, Writer out)
          リーダーの内容をライターにコピーします。
protected static InputStream wrap(InputStream is)
          必要があれば入力ストリームをBufferedInputStreamでラップします。
protected static OutputStream wrap(OutputStream os)
          必要があれば出力ストリームをBufferedOutputStreamでラップします。
protected static Reader wrap(Reader reader)
          必要があればリーダーをBufferedReaderでラップします。
protected static Writer wrap(Writer writer)
          必要があればライターをBufferedWriterでラップします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEFAULT_BUF_SIZE

protected static final int DEFAULT_BUF_SIZE
コピーで使用するバッファサイズ

関連項目:
定数フィールド値
コンストラクタの詳細

CopyUtil

public CopyUtil()
メソッドの詳細

copy

public static int copy(InputStream in,
                       OutputStream out)
入力ストリームから出力ストリームへコピーします。

入力ストリーム、出力ストリームともクローズされません。

パラメータ:
in - 入力ストリーム。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(InputStream in,
                       Writer out)
プラットフォームのデフォルトエンコーディングで入力ストリームからライターへコピーします。

入力ストリーム、ライターともクローズされません。

パラメータ:
in - 入力ストリーム。nullであってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(InputStream in,
                       String encoding,
                       Writer out)
指定のエンコーディングで入力ストリームからライターへコピーします。

入力ストリーム、ライターともクローズされません。

パラメータ:
in - 入力ストリーム。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - ライター
戻り値:
コピーした文字数。nullであってはいけません

copy

public static int copy(InputStream in,
                       File out)
入力ストリームからファイルへコピーします。

入力ストリームはクローズされません。

パラメータ:
in - 入力ストリーム。nullであってはいけません
out - ファイル。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(InputStream in,
                       StringBuilder out)
プラットフォームのデフォルトエンコーディングで入力ストリームからStringBuilderへコピーします。

入力ストリームはクローズされません。

パラメータ:
in - 入力ストリーム。nullであってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(InputStream in,
                       String encoding,
                       StringBuilder out)
指定のエンコーディングで入力ストリームからStringBuilderへコピーします。

入力ストリームはクローズされません。

パラメータ:
in - 入力ストリーム。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(Reader in,
                       OutputStream out)
プラットフォームのデフォルトエンコーディングでリーダーから出力ストリームへコピーします。

リーダー、出力ストリームともクローズされません。

パラメータ:
in - リーダー。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(Reader in,
                       OutputStream out,
                       String encoding)
指定のエンコーディングでリーダーから出力ストリームへコピーします。

リーダー、出力ストリームともクローズされません。

パラメータ:
in - リーダー。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(Reader in,
                       Writer out)
リーダーからライターへコピーします。

リーダー、ライターともクローズされません。

パラメータ:
in - リーダー。nullであってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(Reader in,
                       File out)
プラットフォームのデフォルトエンコーディングでリーダーからファイルへコピーします。

リーダーはクローズされません。

パラメータ:
in - リーダー。nullであってはいけません
out - ファイル。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(Reader in,
                       File out,
                       String encoding)
指定のエンコーディングでリーダーからファイルへコピーします。

パラメータ:
in - リーダー。nullであってはいけません
out - ファイル。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(Reader in,
                       StringBuilder out)
リーダーからStringBuilderへコピーします。

リーダーはクローズされません。

パラメータ:
in - リーダー。nullであってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(File in,
                       OutputStream out)
ファイルから出力ストリームへコピーします。

出力ストリームはクローズされません。

パラメータ:
in - ファイル。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(File in,
                       Writer out)
プラットフォームのデフォルトエンコーディングでファイルからライターへコピーします。

ライターはクローズされません。

パラメータ:
in - ファイル。nullであってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(File in,
                       String encoding,
                       Writer out)
指定のエンコーディングでファイルからライターへコピーします。

ライターはクローズされません。

パラメータ:
in - ファイル。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(File in,
                       File out)
ファイルからファイルへコピーします。

パラメータ:
in - 入力ファイル。nullであってはいけません
out - 出力ファイル。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(File in,
                       String encoding,
                       File out)
指定されたエンコーディングのファイルからプラットフォームデフォルトエンコーディングのファイルへコピーします。

パラメータ:
in - 入力ファイル。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - 出力ファイル。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(File in,
                       File out,
                       String encoding)
プラットフォームデフォルトエンコーディングのファイルから指定されたエンコーディングのファイルへコピーします。

パラメータ:
in - 入力ファイル。nullであってはいけません
out - 出力ファイル。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(File in,
                       String inputEncoding,
                       File out,
                       String outputEncoding)
指定されたエンコーディングのファイルから指定されたエンコーディングのファイルへコピーします。

パラメータ:
in - 入力ファイル。nullであってはいけません
inputEncoding - 入力ファイルのエンコーディング。nullや空文字列であってはいけません
out - 出力ファイル。nullであってはいけません
outputEncoding - 出力ファイルのエンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(File in,
                       StringBuilder out)
プラットフォームのデフォルトエンコーディングでファイルからStringBuilderへコピーします。

パラメータ:
in - ファイル。nullであってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(File in,
                       String encoding,
                       StringBuilder out)
指定されたエンコーディングでファイルからStringBuilderへコピーします。

パラメータ:
in - ファイル。nullであってはいけません
out - StringBuilder。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(URL in,
                       OutputStream out)
URLから出力ストリームへコピーします。

出力ストリームはクローズされません。

パラメータ:
in - URL。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(URL in,
                       Writer out)
プラットフォームのデフォルトエンコーディングでURLからライターへコピーします。

ライターはクローズされません。

パラメータ:
in - URL。nullであってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(URL in,
                       String encoding,
                       Writer out)
指定のエンコーディングでURLからライターへコピーします。

ライターはクローズされません。

パラメータ:
in - URL。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(URL in,
                       File out)
URLからファイルへコピーします。

パラメータ:
in - URL。nullであってはいけません
out - ファイル。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(URL in,
                       String encoding,
                       File out)
指定されたエンコーディングのURLからプラットフォームデフォルトエンコーディングのファイルへコピーします。

パラメータ:
in - URL。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - 出力ファイル。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(URL in,
                       File out,
                       String encoding)
プラットフォームデフォルトエンコーディングのURLから指定されたエンコーディングのファイルへコピーします。

パラメータ:
in - URL。nullであってはいけません
out - ファイル。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(URL in,
                       String inputEncoding,
                       File out,
                       String outputEncoding)
指定されたエンコーディングのURLから指定されたエンコーディングのファイルへコピーします。

パラメータ:
in - URL。nullであってはいけません
inputEncoding - URLのエンコーディング。nullや空文字列であってはいけません
out - ファイル。nullであってはいけません
outputEncoding - ファイルのエンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(URL in,
                       StringBuilder out)
プラットフォームのデフォルトエンコーディングでURLからStringBuilderへコピーします。

パラメータ:
in - URL。nullであってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(URL in,
                       String encoding,
                       StringBuilder out)
指定されたエンコーディングでURLからStringBuilderへコピーします。

パラメータ:
in - URL。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(byte[] in,
                       OutputStream out)
バイト配列から出力ストリームへコピーします。

出力ストリームはクローズされません。

パラメータ:
in - バイト配列。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(byte[] in,
                       Writer out)
プラットフォームのデフォルトエンコーディングでバイト配列からライターへコピーします。

ライターはクローズされません。

パラメータ:
in - バイト配列。nullであってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(byte[] in,
                       String encoding,
                       Writer out)
指定されたエンコーディングでバイト配列からライターへコピーします。

ライターはクローズされません。

パラメータ:
in - バイト配列。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(byte[] in,
                       File out)
バイト配列からファイルへコピーします。

パラメータ:
in - バイト配列。nullであってはいけません
out - ファイル。nullであってはいけません
戻り値:
コピーしたバイト数

copy

public static int copy(byte[] in,
                       String encoding,
                       File out)
指定されたエンコーディングのバイト配列からプラットフォームデフォルトエンコーディングのファイルへコピーします。

パラメータ:
in - バイト配列。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - ファイル。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(byte[] in,
                       File out,
                       String encoding)
プラットフォームデフォルトエンコーディングのバイト配列から指定されたエンコーディングのファイルへコピーします。

パラメータ:
in - バイト配列。nullであってはいけません
out - ファイル。nullであってはいけません
encoding - エンコーディング
戻り値:
コピーした文字数

copy

public static int copy(byte[] in,
                       String inputEncoding,
                       File out,
                       String outputEncoding)
指定されたエンコーディングのバイト配列から指定されたエンコーディングのファイルへコピーします。

パラメータ:
in - バイト配列。nullであってはいけません
inputEncoding - 入力のエンコーディング。nullや空文字列であってはいけません
out - ファイル。nullであってはいけません
outputEncoding - 出力のエンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(byte[] in,
                       StringBuilder out)
プラットフォームのデフォルトエンコーディングでバイト配列からStringBuilderへコピーします。

パラメータ:
in - バイト配列。nullであってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(byte[] in,
                       String encoding,
                       StringBuilder out)
指定されたエンコーディングのバイト配列からプラットフォームデフォルトエンコーディングのStringBuilderへコピーします。

パラメータ:
in - バイト配列。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
out - StringBuilder。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(String in,
                       OutputStream out)
プラットフォームのデフォルトエンコーディングで文字列を出力ストリームへコピーします。

出力ストリームはクローズされません。

パラメータ:
in - 文字列。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(String in,
                       OutputStream out,
                       String encoding)
指定されたエンコーディングで文字列を出力ストリームへコピーします。

出力ストリームはクローズされません。

パラメータ:
in - 文字列。nullであってはいけません
out - 出力ストリーム。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copy

public static int copy(String in,
                       Writer out)
文字列をライターへコピーします。

ライターはクローズされません。

パラメータ:
in - 文字列。nullであってはいけません
out - ライター。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(String in,
                       File out)
プラットフォームのデフォルトエンコーディングで文字列をファイルへコピーします。

パラメータ:
in - 文字列。nullであってはいけません
out - ファイル。nullであってはいけません
戻り値:
コピーした文字数

copy

public static int copy(String in,
                       File out,
                       String encoding)
指定されたエンコーディングで文字列をファイルへコピーします。

パラメータ:
in - 文字列。nullであってはいけません
out - ファイル。nullであってはいけません
encoding - エンコーディング。nullや空文字列であってはいけません
戻り値:
コピーした文字数

copyInternal

protected static int copyInternal(InputStream in,
                                  OutputStream out)
入力ストリームの内容を出力ストリームにコピーします。

入力ストリーム、出力ストリームともクローズされません。

パラメータ:
in - 入力ストリーム
out - 出力ストリーム
戻り値:
コピーしたバイト数

copyInternal

protected static int copyInternal(FileInputStream in,
                                  OutputStream out)
ファイル入力ストリームの内容を出力ストリームにコピーします。

ファイル入力ストリーム、出力ストリームともクローズされません。

パラメータ:
in - ファイル入力ストリーム
out - 出力ストリーム
戻り値:
コピーしたバイト数

copyInternal

protected static int copyInternal(InputStream in,
                                  FileOutputStream out)
入力ストリームの内容をファイル出力ストリームにコピーします。

入力ストリーム、ファイル出力ストリームともクローズされません。

パラメータ:
in - 入力ストリーム
out - ファイル出力ストリーム
戻り値:
コピーしたバイト数

copyInternal

protected static int copyInternal(FileInputStream in,
                                  FileOutputStream out)
ファイル入力ストリームの内容をファイル出力ストリームにコピーします。

ファイル入力ストリーム、ファイル出力ストリームともクローズされません。

パラメータ:
in - ファイル入力ストリーム
out - ファイル出力ストリーム
戻り値:
コピーしたバイト数

copyInternal

protected static int copyInternal(Reader in,
                                  Writer out)
リーダーの内容をライターにコピーします。

リーダー、ライターともクローズされません。

パラメータ:
in - リーダー
out - ライター
戻り値:
コピーした文字数

copyInternal

protected static int copyInternal(Reader in,
                                  StringBuilder out)
リーダーの内容をStringBuilderにコピーします。

パラメータ:
in - リーダー
out - StringBuilder
戻り値:
コピーした文字数

wrap

protected static InputStream wrap(InputStream is)
必要があれば入力ストリームをBufferedInputStreamでラップします。

パラメータ:
is - 入力ストリーム
戻り値:
ラップされた入力ストリーム

wrap

protected static OutputStream wrap(OutputStream os)
必要があれば出力ストリームをBufferedOutputStreamでラップします。

パラメータ:
os - 出力ストリーム
戻り値:
ラップされた出力ストリーム

wrap

protected static Reader wrap(Reader reader)
必要があればリーダーをBufferedReaderでラップします。

パラメータ:
reader - リーダー
戻り値:
ラップされたリーダー

wrap

protected static Writer wrap(Writer writer)
必要があればライターをBufferedWriterでラップします。

パラメータ:
writer - ライター
戻り値:
ラップされたライター


Copyright © 2010-2012 The Seasar Foundation. All Rights Reserved.