Class CompositePrinterParser

java.lang.Object
javax.time.calendar.format.CompositePrinterParser
All Implemented Interfaces:
DateTimeParser, DateTimePrinter

final class CompositePrinterParser extends Object implements DateTimePrinter, DateTimeParser
Composite printer and parser.

CompositePrinterParser is immutable and thread-safe.

  • Field Details

    • printers

      private final DateTimePrinter[] printers
      The list of printers that will be used, treated as immutable.
    • parsers

      private final DateTimeParser[] parsers
      The list of parsers that will be used, treated as immutable.
    • optional

      private final boolean optional
      Whether the print and parse are optional.
  • Constructor Details

    • CompositePrinterParser

      CompositePrinterParser(List<DateTimePrinter> printers, List<DateTimeParser> parsers, boolean optional)
      Constructor.
      Parameters:
      printers - the printers, may be null in which case print() must not be called
      parsers - the parsers, may be null in which case parse() must not be called
      optional - whether the print/parse is optional
  • Method Details

    • withOptional

      public CompositePrinterParser withOptional(boolean optional)
      Returns a copy of this printer-parser with the optional flag changed.
      Parameters:
      optional - the optional flag to set in the copy
      Returns:
      the new printer-parser, never null
    • isPrintSupported

      public boolean isPrintSupported()
    • print

      public void print(Calendrical calendrical, Appendable appendable, DateTimeFormatSymbols symbols) throws IOException
      Prints the calendrical object to the appendable.
      Specified by:
      print in interface DateTimePrinter
      Parameters:
      calendrical - the calendrical to print, not null
      appendable - the appendable to add to, not null
      symbols - the formatting symbols to use, not null
      Throws:
      IOException - if the append throws an exception
    • isPrintDataAvailable

      public boolean isPrintDataAvailable(Calendrical calendrical)
      Checks if the calendrical contains the data necessary to be printed.

      The implementation should not check the validity of the data, just whether there is sufficient data to attempt a print.

      Specified by:
      isPrintDataAvailable in interface DateTimePrinter
      Parameters:
      calendrical - the calendrical to check, not null
      Returns:
      true if the calendrical can be printed, false if not
    • isParseSupported

      public boolean isParseSupported()
    • parse

      public int parse(DateTimeParseContext context, String parseText, int position)
      Parses from the supplied text and position into the calendrical.
      Specified by:
      parse in interface DateTimeParser
      Parameters:
      context - the context to use and parse into, not null
      parseText - the input text to parse, not null
      position - the position to start parsing at, from 0 to the text length
      Returns:
      the new parse position, where negative means an error with the error position encoded using the complement ~ operator
    • toString

      public String toString()
      Overrides:
      toString in class Object