Class PeriodFormatterBuilder.FieldFormatter

    • Field Detail

      • iMinPrintedDigits

        private final int iMinPrintedDigits
      • iPrintZeroSetting

        private final int iPrintZeroSetting
      • iMaxParsedDigits

        private final int iMaxParsedDigits
      • iRejectSignedValues

        private final boolean iRejectSignedValues
      • iFieldType

        private final int iFieldType
        The index of the field type, 0=year, etc.
      • iFieldFormatters

        private final PeriodFormatterBuilder.FieldFormatter[] iFieldFormatters
        The array of the latest formatter added for each type. This is shared between all the field formatters in a formatter.
    • Method Detail

      • countFieldsToPrint

        public int countFieldsToPrint​(ReadablePeriod period,
                                      int stopAt,
                                      java.util.Locale locale)
        Description copied from interface: PeriodPrinter
        Returns the amount of fields from the given period that this printer will print.
        Specified by:
        countFieldsToPrint in interface PeriodPrinter
        Parameters:
        period - the period to use
        stopAt - stop counting at this value, enter a number ≥ 256 to count all
        locale - the locale to use
        Returns:
        amount of fields printed
      • calculatePrintedLength

        public int calculatePrintedLength​(ReadablePeriod period,
                                          java.util.Locale locale)
        Description copied from interface: PeriodPrinter
        Returns the exact number of characters produced for the given period.
        Specified by:
        calculatePrintedLength in interface PeriodPrinter
        Parameters:
        period - the period to use
        locale - the locale to use
        Returns:
        the estimated length
      • printTo

        public void printTo​(java.lang.StringBuffer buf,
                            ReadablePeriod period,
                            java.util.Locale locale)
        Description copied from interface: PeriodPrinter
        Prints a ReadablePeriod to a StringBuffer.
        Specified by:
        printTo in interface PeriodPrinter
        Parameters:
        buf - the formatted period is appended to this buffer
        period - the period to format
        locale - the locale to use
      • printTo

        public void printTo​(java.io.Writer out,
                            ReadablePeriod period,
                            java.util.Locale locale)
                     throws java.io.IOException
        Description copied from interface: PeriodPrinter
        Prints a ReadablePeriod to a Writer.
        Specified by:
        printTo in interface PeriodPrinter
        Parameters:
        out - the formatted period is written out
        period - the period to format
        locale - the locale to use
        Throws:
        java.io.IOException
      • parseInto

        public int parseInto​(ReadWritablePeriod period,
                             java.lang.String text,
                             int position,
                             java.util.Locale locale)
        Description copied from interface: PeriodParser
        Parses a period from the given text, at the given position, saving the result into the fields of the given ReadWritablePeriod. If the parse succeeds, the return value is the new text position. Note that the parse may succeed without fully reading the text.

        If it fails, the return value is negative, but the period may still be modified. To determine the position where the parse failed, apply the one's complement operator (~) on the return value.

        Specified by:
        parseInto in interface PeriodParser
        Parameters:
        period - a period that will be modified
        text - text to parse
        position - position to start parsing from
        locale - the locale to use for parsing
        Returns:
        new position, if negative, parse failed. Apply complement operator (~) to get position of failure
      • parseInt

        private int parseInt​(java.lang.String text,
                             int position,
                             int length)
        Parameters:
        text - text to parse
        position - position in text
        length - exact count of characters to parse
        Returns:
        parsed int value
      • getFieldValue

        long getFieldValue​(ReadablePeriod period)
        Returns:
        Long.MAX_VALUE if nothing to print, otherwise value
      • isSupported

        boolean isSupported​(PeriodType type,
                            int field)
      • setFieldValue

        void setFieldValue​(ReadWritablePeriod period,
                           int field,
                           int value)
      • getFieldType

        int getFieldType()