shohaku.core.util.debug
クラス DebugPrintStream

java.lang.Object
  拡張java.io.OutputStream
      拡張java.io.FilterOutputStream
          拡張java.io.PrintStream
              拡張shohaku.core.io.IntrospectPrintStream
                  拡張shohaku.core.util.debug.DebugPrintStream

public class DebugPrintStream
extends IntrospectPrintStream

デバック用のプリント文を出力する様々なユーティリティ機能を持つ拡張プリントストリームを提供します。

親クラスが持つ機能以外に日付のフォーマット出力やコレクションの表形式の出力等の機能が追加されています。
以外にも様々なフォーマットで出力するユーティリティメソッドが多数提供されています。


入れ子クラスの概要
static interface DebugPrintStream.Printer
          DebugPrintStream.print(Object o)で使用される出力機能を提供します。
 
フィールドの概要
protected static java.util.List DEFAULT_PRINTERS
          デフォルトの出力プリンタを格納します。
protected  java.util.List printers
          このインスタンスで使用する出力プリンタ。
 
クラス shohaku.core.io.IntrospectPrintStream から継承したフィールド
DEFAULT_REPETITION_LIMIT
 
クラス java.io.FilterOutputStream から継承したフィールド
out
 
コンストラクタの概要
DebugPrintStream()
          標準の出力ストリームを出力先として初期化します。
DebugPrintStream(boolean autoFlush)
          標準の出力ストリームを出力先として初期化します。
DebugPrintStream(java.io.OutputStream out)
          指定された出力ストリームを出力先として初期化します。
DebugPrintStream(java.io.OutputStream out, boolean autoFlush)
          指定された出力ストリームを出力先として初期化します。
 
メソッドの概要
 void addPrinter(DebugPrintStream.Printer printer)
          出力プリンタを追加します。
 void addPrinter(int index, DebugPrintStream.Printer printer)
          出力プリンタを追加します。
protected static boolean deepEquals(java.lang.Object from, java.lang.Object to)
          厳密な同一性比較を行う。
protected static java.lang.String formatDate(java.util.Date date, java.lang.String pattern)
          日付型をフォーマット変換します。
protected static java.lang.Object formatDate(java.lang.Object date)
          日付型の書式で日付文字列に変換します。
 DebugPrintStream.Printer[] getPrinters()
          登録済みの出力プリンタを返却します。
 void print(java.lang.Object o)
          登録済みの出力プリンタを使用して出力ストリームへ出力します。
 void print(java.lang.Object title, boolean value)
          タイトルを付けて出力します。
 void print(java.lang.Object title, char value)
          タイトルを付けて出力します。
 void print(java.lang.Object o, DebugPrintStream.Printer printer)
          出力プリンタを使用して出力ストリームへ出力します。
 void print(java.lang.Object title, double value)
          タイトルを付けて出力します。
 void print(java.lang.Object title, float value)
          タイトルを付けて出力します。
 void print(java.lang.Object title, int value)
          タイトルを付けて出力します。
 void print(java.lang.Object title, long value)
          タイトルを付けて出力します。
 void print(java.lang.Object title, java.lang.Object value)
          タイトルを付けて出力します。
 void print(java.lang.Object title, java.lang.Object name, java.lang.Object value)
          タイトルと名前=値を付けて出力します。
 void print(java.lang.Object title, java.lang.Object name, java.lang.Object value1, java.lang.Object value2)
          タイトルと名前=値1、値2を付けて出力します。
 void printArrayTbl(java.lang.Object a)
          多次元配列を表形式で出力します。
 void printArrayTbl(java.lang.Object a, int column)
          多次元配列を表形式で出力します。
 void printBeansTbl(java.lang.Object[] beans)
          全てのJavaBeanの保有するプロパティを全て表形式で出力します。
 void printBeanTbl(java.lang.Object bean)
          JavaBeanの保有するプロパティを全て表形式で出力します。
 void printCollTbl(java.util.Collection c)
          コレクションを表形式で出力します。
 void printCollTbl(java.util.Collection c, int column)
          コレクションを表形式で出力します。
 void printCompBean(java.lang.Object from, java.lang.Object to)
          JavaBeanの保有する同一名のプロパティを全て比較しその情報を出力する
 void printCompMap(java.util.Map from, java.util.Map to)
          JavaBeanの保有する同一名のプロパティを全て比較しその情報を出力する
 void printCurrentTime()
          現在時刻を出力します。
 void printDate(java.util.Date date)
          日付型を出力します。
 void printDLine(int len)
          二重破線を出力します。
 void printDLineln(int len)
          二重破線を出力して前後1行分改行します。
 void printDLineln(int len, int beginLine, int endLine)
          破線前後の改行数を指定して二重破線を出力します。
 void printDLineln(java.lang.Object title, int len)
          タイトルを指定して二重破線を出力します。
 void printLine(int len)
          破線を出力します。
 void printLineln(int len)
          破線を出力して1行分改行します。
 void printLineln(int len, int beginLine, int endLine)
          破線前後の改行数を指定して破線を出力します。
 void printLineln(java.lang.Object title, int len)
          タイトルを指定して破線を出力します。
 void println(java.lang.Object title, boolean value)
          タイトルを付けて出力し改行します。
 void println(java.lang.Object title, char value)
          タイトルを付けて出力し改行します。
 void println(java.lang.Object o, DebugPrintStream.Printer printer)
          出力プリンタを使用して出力ストリームへ出力して改行します。
 void println(java.lang.Object title, double value)
          タイトルを付けて出力し改行します。
 void println(java.lang.Object title, float value)
          タイトルを付けて出力し改行します。
 void println(java.lang.Object title, int value)
          タイトルを付けて出力し改行します。
 void println(java.lang.Object title, long value)
          タイトルを付けて出力し改行します。
 void println(java.lang.Object title, java.lang.Object value)
          タイトルを付けて出力し改行します。
 void println(java.lang.Object title, java.lang.Object name, java.lang.Object value)
          タイトルと名前=値を付けて出力し改行します。
 void println(java.lang.Object title, java.lang.Object name, java.lang.Object value1, java.lang.Object value2)
          タイトルと名前=値1、値2を付けて出力し改行します。
 void printMapTbl(java.util.Map m)
          マップを表形式で出力します。
 void printType(java.lang.Object value)
          型情報を付けて出力します。
 void printTypeColl(java.util.Collection c)
          要素のクラス名を含めコレクションを出力します。
 void printTypeln(java.lang.Object value)
          型情報を付けて出力し改行します。
 void printTypeMap(java.util.Map m)
          要素のクラス名を含めマップを出力します。
 boolean removePrinter(DebugPrintStream.Printer printer)
          出力プリンタを削除します。
 boolean removePrinter(int index)
          出力プリンタを削除します。
 
クラス shohaku.core.io.IntrospectPrintStream から継承したメソッド
getRepetitionLimit, printArray, printArray, printBean, printBeans, printClass, printClass, printColl, printConstants, printDeepArrays, printFields, printlf, printMap, printNull, printsp, setRepetitionLimit
 
クラス java.io.PrintStream から継承したメソッド
checkError, close, flush, print, print, print, print, print, print, print, print, println, println, println, println, println, println, println, println, println, println, setError, write, write
 
クラス java.io.FilterOutputStream から継承したメソッド
write
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEFAULT_PRINTERS

protected static final java.util.List DEFAULT_PRINTERS
デフォルトの出力プリンタを格納します。


printers

protected final java.util.List printers
このインスタンスで使用する出力プリンタ。

コンストラクタの詳細

DebugPrintStream

public DebugPrintStream()
標準の出力ストリームを出力先として初期化します。


DebugPrintStream

public DebugPrintStream(boolean autoFlush)
標準の出力ストリームを出力先として初期化します。

パラメータ:
autoFlush - trueの場合println()メソッドでは出力バッファをフラッシュする

DebugPrintStream

public DebugPrintStream(java.io.OutputStream out)
指定された出力ストリームを出力先として初期化します。

パラメータ:
out - 出力ストリーム

DebugPrintStream

public DebugPrintStream(java.io.OutputStream out,
                        boolean autoFlush)
指定された出力ストリームを出力先として初期化します。

パラメータ:
out - 出力ストリーム
autoFlush - trueの場合println()メソッドでは出力バッファをフラッシュする
メソッドの詳細

getPrinters

public DebugPrintStream.Printer[] getPrinters()
登録済みの出力プリンタを返却します。

戻り値:
出力プリンタ

addPrinter

public void addPrinter(DebugPrintStream.Printer printer)
出力プリンタを追加します。

パラメータ:
printer - 出力プリンタ

addPrinter

public void addPrinter(int index,
                       DebugPrintStream.Printer printer)
出力プリンタを追加します。

パラメータ:
index - 登録するインデックス位置
printer - 出力プリンタ
例外:
java.lang.IndexOutOfBoundsException - インデックス位置が範囲外の場合

removePrinter

public boolean removePrinter(int index)
出力プリンタを削除します。

パラメータ:
index - 登録するインデックス位置
戻り値:
削除が実際に行われた場合trueを返す

removePrinter

public boolean removePrinter(DebugPrintStream.Printer printer)
出力プリンタを削除します。

パラメータ:
printer - 出力プリンタ
戻り値:
削除が実際に行われた場合trueを返す

print

public void print(java.lang.Object o)
登録済みの出力プリンタを使用して出力ストリームへ出力します。

オーバーライド:
クラス IntrospectPrintStream 内の print
パラメータ:
o - 出力値

print

public void print(java.lang.Object o,
                  DebugPrintStream.Printer printer)
出力プリンタを使用して出力ストリームへ出力します。
Printer.isAssignable(Object)trueの場合のみ出力されます。

パラメータ:
o - 出力値
printer - 出力プリンタ

print

public void print(java.lang.Object title,
                  boolean value)
タイトルを付けて出力します。

パラメータ:
title - タイトル
value - 出力値

print

public void print(java.lang.Object title,
                  char value)
タイトルを付けて出力します。

パラメータ:
title - タイトル
value - 出力値

print

public void print(java.lang.Object title,
                  double value)
タイトルを付けて出力します。

パラメータ:
title - タイトル
value - 出力値

print

public void print(java.lang.Object title,
                  float value)
タイトルを付けて出力します。

パラメータ:
title - タイトル
value - 出力値

print

public void print(java.lang.Object title,
                  int value)
タイトルを付けて出力します。

パラメータ:
title - タイトル
value - 出力値

print

public void print(java.lang.Object title,
                  long value)
タイトルを付けて出力します。

パラメータ:
title - タイトル
value - 出力値

print

public void print(java.lang.Object title,
                  java.lang.Object value)
タイトルを付けて出力します。

パラメータ:
title - タイトル
value - 出力値

print

public void print(java.lang.Object title,
                  java.lang.Object name,
                  java.lang.Object value)
タイトルと名前=値を付けて出力します。

パラメータ:
title - タイトル
name - 値の名前
value - 出力値

print

public void print(java.lang.Object title,
                  java.lang.Object name,
                  java.lang.Object value1,
                  java.lang.Object value2)
タイトルと名前=値1、値2を付けて出力します。

パラメータ:
title - タイトル
name - 値の名前
value1 - 出力値1
value2 - 出力値2

println

public void println(java.lang.Object o,
                    DebugPrintStream.Printer printer)
出力プリンタを使用して出力ストリームへ出力して改行します。
Printer.isAssignable(Object)trueの場合のみ出力されます。

パラメータ:
o - 出力値
printer - 出力プリンタ

println

public void println(java.lang.Object title,
                    boolean value)
タイトルを付けて出力し改行します。

パラメータ:
title - タイトル
value - 出力値

println

public void println(java.lang.Object title,
                    char value)
タイトルを付けて出力し改行します。

パラメータ:
title - タイトル
value - 出力値

println

public void println(java.lang.Object title,
                    double value)
タイトルを付けて出力し改行します。

パラメータ:
title - タイトル
value - 出力値

println

public void println(java.lang.Object title,
                    float value)
タイトルを付けて出力し改行します。

パラメータ:
title - タイトル
value - 出力値

println

public void println(java.lang.Object title,
                    int value)
タイトルを付けて出力し改行します。

パラメータ:
title - タイトル
value - 出力値

println

public void println(java.lang.Object title,
                    long value)
タイトルを付けて出力し改行します。

パラメータ:
title - タイトル
value - 出力値

println

public void println(java.lang.Object title,
                    java.lang.Object value)
タイトルを付けて出力し改行します。

パラメータ:
title - タイトル
value - 出力値

println

public void println(java.lang.Object title,
                    java.lang.Object name,
                    java.lang.Object value)
タイトルと名前=値を付けて出力し改行します。

パラメータ:
title - タイトル
name - 値の名前
value - 出力値

println

public void println(java.lang.Object title,
                    java.lang.Object name,
                    java.lang.Object value1,
                    java.lang.Object value2)
タイトルと名前=値1、値2を付けて出力し改行します。

パラメータ:
title - タイトル
name - 値の名前
value1 - 出力値1
value2 - 出力値2

printLine

public void printLine(int len)
破線を出力します。

パラメータ:
len - 破線数

printLineln

public void printLineln(int len)
破線を出力して1行分改行します。

パラメータ:
len - 破線数

printLineln

public void printLineln(java.lang.Object title,
                        int len)
タイトルを指定して破線を出力します。 "------ タイトル ------"

パラメータ:
title - タイトル
len - 破線数

printLineln

public void printLineln(int len,
                        int beginLine,
                        int endLine)
破線前後の改行数を指定して破線を出力します。

パラメータ:
len - 破線数
beginLine - 開始改行
endLine - 終了改行

printDLine

public void printDLine(int len)
二重破線を出力します。

パラメータ:
len - 破線数

printDLineln

public void printDLineln(int len)
二重破線を出力して前後1行分改行します。

パラメータ:
len - 破線数

printDLineln

public void printDLineln(java.lang.Object title,
                         int len)
タイトルを指定して二重破線を出力します。 "====== タイトル ======"

パラメータ:
title - タイトル
len - 破線数

printDLineln

public void printDLineln(int len,
                         int beginLine,
                         int endLine)
破線前後の改行数を指定して二重破線を出力します。

パラメータ:
len - 破線数
beginLine - 開始改行
endLine - 終了改行

printTypeColl

public void printTypeColl(java.util.Collection c)
要素のクラス名を含めコレクションを出力します。
     <ClassName>[ <ClassName>item1, <ClassName>item2, … ]
 

パラメータ:
c - 出力値

printTypeMap

public void printTypeMap(java.util.Map m)
要素のクラス名を含めマップを出力します。
  <ClassName>{ <ClassName>key1:<ClassName>value1, <ClassName>key2:<ClassName>value2, … }
 

パラメータ:
m - 出力値

printArrayTbl

public void printArrayTbl(java.lang.Object a)
多次元配列を表形式で出力します。
     <ArrayClassType(length)>[
      item1
      <ArrayClassType(length)>[item2-1, item2-2, item2-3]
      item3
      …
     ]
 

パラメータ:
a - 出力値

printArrayTbl

public void printArrayTbl(java.lang.Object a,
                          int column)
多次元配列を表形式で出力します。
     <ArrayClassType(length)>[
       item1, item2, item3
       item4, <ArrayClassType(length)>[item5-1, item5-2, item5-3], item6
       item7, …
     ]
 

パラメータ:
a - 出力値
column - 1列分の要素数

printCollTbl

public void printCollTbl(java.util.Collection c)
コレクションを表形式で出力します。
    <ClassName>[
      item1
      item2
      item3
      …
    ]
 

パラメータ:
c - 出力値

printCollTbl

public void printCollTbl(java.util.Collection c,
                         int column)
コレクションを表形式で出力します。
     
     <ClassName>[
       item1, item2, item3
       item4, item5, item6
       item7, …
     ]
 

パラメータ:
c - 出力値
column - 1列分の要素数

printMapTbl

public void printMapTbl(java.util.Map m)
マップを表形式で出力します。
     <ClassName>{
       key1:value1
       key2:value2
       key3:value3
       …
     }
 

パラメータ:
m - 出力値

printBeanTbl

public void printBeanTbl(java.lang.Object bean)
JavaBeanの保有するプロパティを全て表形式で出力します。
        
     <ClassName>{
       property1=value1
       property2=value2
       property3=value3
       …
     }
 

パラメータ:
bean - 出力するJavaBean

printBeansTbl

public void printBeansTbl(java.lang.Object[] beans)
全てのJavaBeanの保有するプロパティを全て表形式で出力します。
     <ArrayClassType(length)>[length]
     [
       [0]<ClassName>{
         property1=value1
         property2=value2
         property3=value3
         …
       }
       [1]<ClassName>{
         property1=value1
         property2=value2
         property3=value3
         …
       }
       …
     ]
 

パラメータ:
beans - 出力するJavaBeanの配列

printDate

public void printDate(java.util.Date date)
日付型を出力します。

パラメータ:
date - 出力値

printCurrentTime

public void printCurrentTime()
現在時刻を出力します。


printCompBean

public void printCompBean(java.lang.Object from,
                          java.lang.Object to)
JavaBeanの保有する同一名のプロパティを全て比較しその情報を出力する

パラメータ:
from - 比較元
to - 比較先

printCompMap

public void printCompMap(java.util.Map from,
                         java.util.Map to)
JavaBeanの保有する同一名のプロパティを全て比較しその情報を出力する

パラメータ:
from - 比較元
to - 比較先

printType

public void printType(java.lang.Object value)
型情報を付けて出力します。

パラメータ:
value - 出力値

printTypeln

public void printTypeln(java.lang.Object value)
型情報を付けて出力し改行します。

パラメータ:
value - 出力値

formatDate

protected static java.lang.Object formatDate(java.lang.Object date)
日付型の書式で日付文字列に変換します。

変換形式:


formatDate

protected static java.lang.String formatDate(java.util.Date date,
                                             java.lang.String pattern)
日付型をフォーマット変換します。

パラメータ:
date - 日付
pattern - 書式
戻り値:
日付文字列

deepEquals

protected static boolean deepEquals(java.lang.Object from,
                                    java.lang.Object to)
厳密な同一性比較を行う。
nullの比較と 配列・多次元配列の内部要素を含む同値性比較を行い、以外は通常の比較と同一。

パラメータ:
from - 比較元
to - 比較先
戻り値:
同一の場合True