Class CompositePrinterParser

    • Field Detail

      • 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 Detail

      • CompositePrinterParser

        CompositePrinterParser​(java.util.List<DateTimePrinter> printers,
                               java.util.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 Detail

      • 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,
                          java.lang.Appendable appendable,
                          DateTimeFormatSymbols symbols)
                   throws java.io.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:
        java.io.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,
                         java.lang.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object