Package pi.debug

Class ToStringFormatter

java.lang.Object
pi.debug.ToStringFormatter

public class ToStringFormatter extends Object
Hilft die Textausgabe der Object.toString()-Methoden zu formatieren.

Wird zum Beispiel die Figur Image mit der Methode System.out.println(String) ausgegeben so erscheint folgende Zeichenkette: Image [width=1.0m, height=1.0m, imageWidth=8px, imageHeight=8px, pixelPerMeter=8.0]


 public String toString()
 {
     ToStringFormatter formatter = new ToStringFormatter("Image");
     formatter.add("width", width, "m");
     formatter.add("height", height, "m");
     if (pixelPerMeter > 0)
     {
         formatter.add("pixelPerMeter", pixelPerMeter);
     }
     if (isFlippedHorizontally())
     {
         formatter.add("flippedHorizontally");
     }
     return formatter.format();
 }
 

Beispiel wie der ToStringFormatter in einer Klassenhierarchie eingesetzt werden kann:

 
 public ToStringFormatter toStringFormatter()
 {
     var formatter = super.toStringFormatter();
     if (numberOfChilds() > 0)
     {
         formatter.prepend("numberOfChilds", numberOfChilds());
     }
     return formatter;
 }
  
Since:
0.25.0
Author:
Josef Friedrich
  • Constructor Details

    • ToStringFormatter

      public ToStringFormatter(String className)
      Initialisiert einen neuen ToStringFormatter mit dem gegebenen Klassenname.
       
       @Override
       public String toString()
       {
           ToStringFormatter formatter = new ToStringFormatter("Image");
           formatter.add("width", width, "m");
           formatter.add("height", height, "m");
           if (pixelPerMeter > 0)
           {
               formatter.add("pixelPerMeter", pixelPerMeter);
           }
           if (isFlippedHorizontally())
           {
               formatter.add("flippedHorizontally");
           }
           return formatter.format();
       }
       
       
      Parameters:
      className - Der Klassenname.
    • ToStringFormatter

      public ToStringFormatter(Object object)
      Initialisiert einen neuen ToStringFormatter mit dem gegebenen Objekt.

      Extrahiert den einfachen Klassennamen und berechnet den Hexadezimal-Hashcode des Objekts basierend auf seiner Identität im Speicher.

      Parameters:
      object - Das Objekt, für das die String-Repräsentation formatiert werden soll.
  • Method Details

    • className

      Setzt den Klassennamen und Hash-Code basierend auf dem übergebenen Objekt.

      Der einfache Klassenname wird aus dem Objekt extrahiert und der Hash-Code wird als hexadezimale Darstellung der Identitäts-Hash-Code des Objekts gespeichert.

      Parameters:
      object - Das Objekt, dessen Klassenname und Identitäts-Hash-Code gespeichert werden sollen.
      Returns:
      diese ToStringFormatter Instanz für Method Chaining
      Since:
      0.45.0
    • prepend

      public void prepend(String fieldName, Object value)
      Fügt das Schlüssel-Wert-Paar eines Felds am Anfang der Feldliste hinzu.
      Parameters:
      fieldName - Der Name des Felds bzw. des Attributs.
      value - Der Wert des Felds in einem beliebigen Datentyp.
    • prepend

      public void prepend(String fieldName, Object value, String unit)
      Fügt das Schlüssel-Wert-Paar eines Felds mit Einheit am Anfang der Feldliste hinzu.
      Parameters:
      fieldName - Der Name des Felds bzw. des Attributs.
      value - Der Wert des Felds in einem beliebigen Datentyp.
      unit - Eine zusätzliche Zeichenkette, die an den Wert angehängt wird, und als Einheit dienen kann.
    • append

      public void append(String fieldName, Object value)
      Fügt das Schlüssel-Wert-Paar eines Felds ans Ende der Feldliste hinzu.
      Parameters:
      fieldName - Der Name des Felds bzw. des Attributs.
      value - Der Wert des Felds in einem beliebigen Datentyp.
    • append

      public void append(String fieldName, Object value, String unit)
      Fügt das Schlüssel-Wert-Paar eines Felds mit Einheit ans Ende der Feldliste hinzu.
      Parameters:
      fieldName - Der Name des Felds bzw. des Attributs.
      value - Der Wert des Felds in einem beliebigen Datentyp.
      unit - Eine zusätzliche Zeichenkette, die an den Wert angehängt wird, und als Einheit dienen kann.
    • format

      public String format()
      Gibt die formatierte Zeichenkette aus.
      Returns:
      Die formatierte Zeichenkette.
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also:
    • clean

      public static String clean(String toString)
      Bereinigt die angegeben toString()-Zeichenkette, indem alle ANSI-Farbcodes und @hashCodes entfernt werden.
      Parameters:
      toString - Der zu bereinigende Format-String.
      Returns:
      Ein bereinigter Format-String ohne ANSI-Farbcodes und Hexadezimalzahlen.
      Since:
      0.42.0