Class ZonePrinterParser
java.lang.Object
javax.time.calendar.format.ZonePrinterParser
- All Implemented Interfaces:
DateTimeParser, DateTimePrinter
Prints or parses a zone offset.
ZonePrinterParser is immutable and thread-safe.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classModel a tree of substrings to make the parsing easier. -
Field Summary
FieldsModifier and TypeFieldDescriptionThe cached IDs.private static ZonePrinterParser.SubstringTreeThe cached tree to speed up parsing.private final DateTimeFormatterBuilder.TextStyleThe text style to output, null means the id. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanisPrintDataAvailable(Calendrical calendrical) Checks if the calendrical contains the data necessary to be printed.intparse(DateTimeParseContext context, String parseText, int position) This implementation looks for the longest matching string.private static ZonePrinterParser.SubstringTreeprepareParser(Set<String> availableIDs) Builds an optimized parsing tree.voidprint(Calendrical calendrical, Appendable appendable, DateTimeFormatSymbols symbols) Prints the calendrical object to the appendable.toString()
-
Field Details
-
textStyle
The text style to output, null means the id. -
preparedTree
The cached tree to speed up parsing. -
preparedIDs
-
-
Constructor Details
-
ZonePrinterParser
ZonePrinterParser()Constructor. -
ZonePrinterParser
ZonePrinterParser(DateTimeFormatterBuilder.TextStyle textStyle) Constructor.- Parameters:
textStyle- the test style to output, not null
-
-
Method Details
-
print
public void print(Calendrical calendrical, Appendable appendable, DateTimeFormatSymbols symbols) throws IOException Prints the calendrical object to the appendable.- Specified by:
printin interfaceDateTimePrinter- Parameters:
calendrical- the calendrical to print, not nullappendable- the appendable to add to, not nullsymbols- the formatting symbols to use, not null- Throws:
IOException- if the append throws an exception
-
isPrintDataAvailable
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:
isPrintDataAvailablein interfaceDateTimePrinter- Parameters:
calendrical- the calendrical to check, not null- Returns:
- true if the calendrical can be printed, false if not
-
parse
This implementation looks for the longest matching string. For example, parsing Etc/GMT-2 will return Etc/GMC-2 rather than just Etc/GMC although both are valid.This implementation uses a tree to search for valid time-zone names in the parseText. The top level node of the tree has a length equal to the length of the shortest time-zone as well as the beginning characters of all other time-zones.
- Specified by:
parsein interfaceDateTimeParser- Parameters:
context- the context to use and parse into, not nullparseText- the input text to parse, not nullposition- 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
-
prepareParser
Builds an optimized parsing tree.- Parameters:
availableIDs- the available IDs, not null, not empty- Returns:
- the tree, never null
-
toString
-