Package eu.pedu.lib20s.dbg
Class IndentingReporter
java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.PrintStream
eu.pedu.lib20s.dbg.IndentingPrintStream
eu.pedu.lib20s.dbg.IndentingReporter
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.Appendable
,java.lang.AutoCloseable
public class IndentingReporter extends IndentingPrintStream
Instance třídy
IndentingReporter
představují zpravodaje,
kteří jsou schopni získávat informace o volajících metodách
a zapisovat požadované informace do zadaného výstupního proudu tak,
aby vynikla hierarchie volání, případně jiná požadovaná hierarchie.-
Field Summary
-
Constructor Summary
Constructors Constructor Description IndentingReporter(java.io.OutputStream stream, java.lang.String codepage)
Vytvoří zpravodaje zapisujícího do zadaného výstupního proudu a používajícího zadané kódování. -
Method Summary
Modifier and Type Method Description IndentingReporter
append(char c)
IndentingReporter
append(java.lang.CharSequence csq)
Přebíjím jenom proto, abych dostal požadovaný typ návratové hodnoty.IndentingReporter
append(java.lang.CharSequence csq, int start, int end)
IndentingReporter
format(java.lang.String format, java.lang.Object... args)
IndentingReporter
format(java.util.Locale l, java.lang.String format, java.lang.Object... args)
static java.lang.String
getCallerName()
Vrátí řetězec s jednoduchým názvem třídy a její metody volající tuto metodu.static IndentingReporter
getInstance(java.io.OutputStream stream)
Vytvoří zpravodaje zapisujícího do zadaného výstupního proudu a používajícího kódování DEFAULT_ENCODING.static IndentingReporter
getInstance(java.io.OutputStream stream, java.lang.String codepage)
Vytvoří zpravodaje zapisujícího do zadaného výstupního proudu a používajícího zadané kódování.static IndentingReporter
getSensitiveSystemReporter()
Vrátí instanci zpravodaje zapisující na standardní výstup.static IndentingReporter
getSystemReporter()
Vrátí instanci zpravodaje zapisující na standardní výstup.static IndentingReporter
getSystemReporter(java.lang.String encoding)
Vrátí instanci zpravodaje zapisující na standardní výstup.IndentingReporter
indent()
Přidá další úroveň odsazení a odřádkuje.IndentingReporter
outdent()
Odebere jednu úroveň odsazení a odřádkuje.IndentingReporter
printf(java.lang.String format, java.lang.Object... args)
IndentingReporter
printf(java.util.Locale l, java.lang.String format, java.lang.Object... args)
Rodič to převádí na format, který přebíjímIndentingReporter
report(java.lang.String text)
Do odsazovaného výstupu vypíše zadaný text.IndentingReporter
reportEnd()
Zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody, která tuto metodu zavolala.IndentingReporter
reportEnd(int depth, java.lang.String text)
Je-li zadán text, odřádkuje a vypíše jej; pak zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.IndentingReporter
reportEnd(int depth, java.util.function.Consumer<IndentingReporter> action)
Provede zadanou akci, zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.IndentingReporter
reportEnd(java.lang.String text)
Vypíše zadaný text, zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.IndentingReporter
reportEnd(java.util.function.Consumer<IndentingReporter> action)
Provede zadanou akci, zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.IndentingReporter
reportln(java.lang.String text)
Do odsazovaného výstupu vypíše zadaný text a odřádkuje.IndentingReporter
reportStart()
Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky odsazení a odřádkuje.IndentingReporter
reportStart(int depth, java.lang.String text)
Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky počáteční odsazení, odřádkuje a vypíše zadaný text.IndentingReporter
reportStart(int depth, java.util.function.Consumer<IndentingReporter> action)
Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky počáteční odsazení, odřádkuje a provede zadanou akci.IndentingReporter
reportStart(java.lang.String text)
Vypíše jednoduchý název třídy a její metody, která tuto metodu zavolala, zvýší pro příští řádky počáteční odsazení, odřádkuje a vypíše zadaný text.IndentingReporter
reportStart(java.util.function.Consumer<IndentingReporter> action)
Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky počáteční odsazení, odřádkuje a provede zadanou akci.Methods inherited from class eu.pedu.lib20s.dbg.IndentingPrintStream
getDefaultIndentIncrement, getCharset, indentifyPrintStream, indentifyPrintStream, isSystemOut, print, returnSystemOut, setDefaultIndentIncrement, setIndentIncrement, setSystemOut, setSystemOut, setSystemOut, setSystemOut, setThreadSensitive, setToASCII, write
-
Constructor Details
-
IndentingReporter
public IndentingReporter(java.io.OutputStream stream, java.lang.String codepage) throws java.io.UnsupportedEncodingExceptionVytvoří zpravodaje zapisujícího do zadaného výstupního proudu a používajícího zadané kódování.- Parameters:
stream
- Dekorovaný proudcodepage
- Kódová stránka vytvořeného proudu- Throws:
java.io.UnsupportedEncodingException
- Při zadání nepodporovaného kódování
-
-
Method Details
-
getSensitiveSystemReporter
Vrátí instanci zpravodaje zapisující na standardní výstup. Pokud taková instance ještě neexistuje, vytvoří ji a nastaví jí kódování DEFAULT_ENCODING.Potřebujeme-li změnit kódování systémového výstupu, je třeba nejprve nastavit původní stav (zavolat
IndentingPrintStream.returnSystemOut()
) a pak požádat o nastavení standardního výstupu se zadaným kódováním.- Returns:
- Zpravodaj zapisující na standardní výstup
-
getSystemReporter
Vrátí instanci zpravodaje zapisující na standardní výstup. Pokud taková instance ještě neexistuje, vytvoří ji a nastaví jí kódování DEFAULT_ENCODING.Potřebujeme-li změnit kódování systémového výstupu, je třeba nejprve nastavit původní stav (zavolat
IndentingPrintStream.returnSystemOut()
) a pak požádat o nastavení standardního výstupu se zadaným kódováním.- Returns:
- Zpravodaj zapisující na standardní výstup
-
getSystemReporter
Vrátí instanci zpravodaje zapisující na standardní výstup. Pokud taková instance ještě neexistuje, vytvoří ji a nastaví jí kódování DEFAULT_ENCODING.Potřebujeme-li změnit kódování systémového výstupu, je třeba nejprve nastavit původní stav (zavolat
IndentingPrintStream.returnSystemOut()
) a pak požádat o nastavení standardního výstupu se zadaným kódováním.- Parameters:
encoding
- Použité kódování výstupu- Returns:
- Zpravodaj zapisující na standardní výstup
-
getCallerName
public static java.lang.String getCallerName()Vrátí řetězec s jednoduchým názvem třídy a její metody volající tuto metodu.- Returns:
- Jednoduchý název třídy a její metody volající tuto metodu
-
getInstance
Vytvoří zpravodaje zapisujícího do zadaného výstupního proudu a používajícího kódování DEFAULT_ENCODING.- Parameters:
stream
- Dekorovaný proud- Returns:
- Vytvořený zpravodaj
-
getInstance
public static IndentingReporter getInstance(java.io.OutputStream stream, java.lang.String codepage)Vytvoří zpravodaje zapisujícího do zadaného výstupního proudu a používajícího zadané kódování.- Parameters:
stream
- Dekorovaný proudcodepage
- Kódová stránka vytvořeného proudu- Returns:
- Vytvořený zpravodaj
-
reportStart
Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky odsazení a odřádkuje.- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
reportEnd
Zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody, která tuto metodu zavolala.- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
reportStart
Vypíše jednoduchý název třídy a její metody, která tuto metodu zavolala, zvýší pro příští řádky počáteční odsazení, odřádkuje a vypíše zadaný text.- Parameters:
text
- Text, vypsaný za řádkem s oznámením vstupu do metody Je-li zadán prázdný řetězec nebonull
, řádek se nevygeneruje.- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
reportEnd
Vypíše zadaný text, zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.- Parameters:
text
- Text, vypsaný za řádkem s oznámením vstupu do metody Je-li zadán prázdný řetězec nebonull
, řádek se nevygeneruje.- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
reportStart
Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky počáteční odsazení, odřádkuje a vypíše zadaný text.- Parameters:
depth
- Hloubka dotazu na metodu, jejíž název se vypisuje, pro případ, že by se neměl vypsat název metody bezprostředně volající tuto metodu (pro ni jedepth=1
, ale název některé z metod, které ji volají až zprostředkovaně – vizCallerReporter.getCallerName(int, int)
text
- Text, vypsaný za řádkem s názvem metody Je-li zadán prázdný řetězec nebonull
, řádek se nevygeneruje.- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
reportEnd
Je-li zadán text, odřádkuje a vypíše jej; pak zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.- Parameters:
depth
- Hloubka dotazu na metodu, jejíž název se vypisuje, pro případ, že by se neměl vypsat název metody bezprostředně volající tuto metodu (pro ni jedepth=1
, ale název některé z metod, které ji volají až zprostředkovaně – vizCallerReporter.getCallerName(int, int)
text
- Text, vypsaný před řádkem s oznámením výstupu z metody Je-li zadán prázdný řetězec nebonull
, řádek se nevygeneruje.- Returns:
- Jednoduchý název třídy a její metody volající tuto metodu
-
reportStart
Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky počáteční odsazení, odřádkuje a provede zadanou akci.- Parameters:
action
- Akce, která se má provést po vypsání řádku s názvem třídy a metody- Returns:
- Jednoduchý název třídy a její metody volající tuto metodu
-
reportEnd
Provede zadanou akci, zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.- Parameters:
action
- Akce, která se má provést po vypsání řádku s názvem třídy a metody- Returns:
- Jednoduchý název třídy a její metody volající tuto metodu
-
reportStart
public IndentingReporter reportStart(int depth, java.util.function.Consumer<IndentingReporter> action)Vypíše jednoduchý název třídy a její metody volající tuto metodu, zvýší pro příští řádky počáteční odsazení, odřádkuje a provede zadanou akci.- Parameters:
depth
- Hloubka dotazu na metodu, jejíž název se vypisuje, pro případ, že by se neměl vypsat název metody bezprostředně volající tuto metodu (pro ni jedepth=1
, ale název některé z metod, které ji volají až zprostředkovaně – vizCallerReporter.getCallerName(int, int)
action
- Akce, která se má provést po vypsání řádku s názvem třídy a metody- Returns:
- Jednoduchý název třídy a její metody volající tuto metodu
-
reportEnd
public IndentingReporter reportEnd(int depth, java.util.function.Consumer<IndentingReporter> action)Provede zadanou akci, zmenší pro příští řádky počáteční odsazení, odřádkuje a na další řádek vypíše jednoduchý název třídy a její metody volající tuto metodu.- Parameters:
depth
- Hloubka dotazu na metodu, jejíž název se vypisuje, pro případ, že by se neměl vypsat název metody bezprostředně volající tuto metodu (pro ni jedepth=1
, ale název některé z metod, které ji volají až zprostředkovaně – vizCallerReporter.getCallerName(int, int)
action
- Akce, která se má provést po vypsání řádku s názvem třídy a metody- Returns:
- Jednoduchý název třídy a její metody volající tuto metodu
-
report
Do odsazovaného výstupu vypíše zadaný text.- Parameters:
text
- Vypisovaný text- Returns:
- Odkaz na instanci pro možnost zřetězení
-
reportln
Do odsazovaného výstupu vypíše zadaný text a odřádkuje.- Parameters:
text
- Vypisovaný text- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
append
Přebíjím jenom proto, abych dostal požadovaný typ návratové hodnoty.- Specified by:
append
in interfacejava.lang.Appendable
- Overrides:
append
in classIndentingPrintStream
- Parameters:
csq
- Připojovaná posloupnost znaků- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
append
- Specified by:
append
in interfacejava.lang.Appendable
- Overrides:
append
in classIndentingPrintStream
- Parameters:
csq
- Připojovaná posloupnost znakůstart
- Index prvního přidávaného znakuend
- Index znaku za posledním přidávaným znakem- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
append
- Specified by:
append
in interfacejava.lang.Appendable
- Overrides:
append
in classIndentingPrintStream
- Parameters:
c
- Přidávaný znak- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
format
- Overrides:
format
in classIndentingPrintStream
- Parameters:
format
- Formát vraceného textuargs
- Parametry, jejichž hodnoty se budou tisknout- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
format
public IndentingReporter format(java.util.Locale l, java.lang.String format, java.lang.Object... args)- Overrides:
format
in classIndentingPrintStream
- Parameters:
l
- PoužitéLocale
format
- Formát vraceného textuargs
- Parametry, jejichž hodnoty se budou tisknout- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
indent
Přidá další úroveň odsazení a odřádkuje. Další řádek tak bude o jedno odsazení bohatší.- Overrides:
indent
in classIndentingPrintStream
- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
outdent
Odebere jednu úroveň odsazení a odřádkuje. Další řádek tak bude o jedno odsazení chudší.- Overrides:
outdent
in classIndentingPrintStream
- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
printf
- Overrides:
printf
in classIndentingPrintStream
- Parameters:
format
- Formát vraceného textuargs
- Parametry, jejichž hodnoty se budou tisknout- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-
printf
public IndentingReporter printf(java.util.Locale l, java.lang.String format, java.lang.Object... args)Rodič to převádí na format, který přebíjím- Overrides:
printf
in classIndentingPrintStream
- Parameters:
l
- PoužitéLocale
format
- Formát vraceného textuargs
- Parametry, jejichž hodnoty se budou tisknout- Returns:
- Odkaz na svoji instanci, aby bylo možno příkazy řetězit
-