Class Pretty

java.lang.Object
net.hydromatic.morel.compile.Pretty

class Pretty extends Object
Prints values.
  • Field Details

    • typeSystem

      private final TypeSystem typeSystem
    • lineWidth

      private final int lineWidth
    • output

      private final Prop.Output output
    • printLength

      private final int printLength
    • printDepth

      private final int printDepth
    • stringDepth

      private final int stringDepth
    • newline

      private final char newline
  • Constructor Details

    • Pretty

      Pretty(TypeSystem typeSystem, int lineWidth, Prop.Output output, int printLength, int printDepth, int stringDepth)
  • Method Details

    • pretty

      StringBuilder pretty(@NonNull StringBuilder buf, @NonNull Type type, @NonNull Object value)
      Prints a value to a buffer.
    • pretty1

      private StringBuilder pretty1(@NonNull StringBuilder buf, int indent, int[] lineEnd, int depth, @NonNull Type type, @NonNull Object value, int leftPrec, int rightPrec)
      Prints a value to a buffer. If the first attempt goes beyond lineEnd, back-tracks, adds a newline and indent, and tries again one time.
    • indent

      private static void indent(@NonNull StringBuilder buf, int indent)
    • pretty2

      private StringBuilder pretty2(@NonNull StringBuilder buf, int indent, int[] lineEnd, int depth, @NonNull Type type, @NonNull Object value, int leftPrec, int rightPrec)
    • customPrint

      private boolean customPrint(@NonNull StringBuilder buf, int indent, int[] lineEnd, int depth, Type type, Object o)
      Tries to print a value using a custom formatter.

      If successful, returns true, and buf contains the value; if unsuccessful, returns false, and the contents of buf are not changed.

    • canPrintTabular

      private static boolean canPrintTabular(Type type)
      Can print a type in tabular format if it is a list of records.
    • canPrintTabular2

      private static boolean canPrintTabular2(RecordType recordType)
      Can print a record in tabular format if its fields are all primitive.
    • row

      private void row(StringBuilder buf, List<String> values, List<Integer> widths, char pad)
    • padTo

      private void padTo(StringBuilder buf, int desiredLength, char pad)
    • prettyType

      private StringBuilder prettyType(StringBuilder buf, int indent, int[] lineEnd, int depth, Type type, Pretty.TypeVal typeVal, int leftPrec, int rightPrec)
    • toList

      private static List<Object> toList(Object value)
    • unqualified

      private static Type unqualified(Type type)
    • printList

      private StringBuilder printList(@NonNull StringBuilder buf, int indent, int[] lineEnd, int depth, @NonNull Type elementType, @NonNull List<Object> list)