Class PeriodParser
- java.lang.Object
-
- javax.time.calendar.PeriodParser
-
final class PeriodParser extends java.lang.Object
An period parser that creates an instance ofPeriod
from a string using the ISO8601 period formatPnYnMnDTnHnMn.nS
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
PeriodParser.ParseValues
Parse values container created for each parse.
-
Field Summary
Fields Modifier and Type Field Description private static PeriodParser
INSTANCE
The singleton instance.private static java.lang.String
TOKEN_SEQUENCE
Used to validate the correct sequence of tokens.private static java.lang.String
ZERO
The standard string representing a zero period.
-
Constructor Summary
Constructors Modifier Constructor Description private
PeriodParser()
Restricted constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static PeriodParser
getInstance()
Gets the singleton instance of the parser.(package private) Period
parse(java.lang.String text)
Obtains an instance ofPeriod
from a string.private void
parseDate(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
private int
parseInt(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
private long
parseNanos(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
private java.lang.String
parseNumber(PeriodParser.ParseValues values, java.lang.String s)
private void
parseTime(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
private java.lang.String
prepareTime(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
private void
validateCharactersAndOrdering(java.lang.String s, java.lang.String text)
-
-
-
Field Detail
-
INSTANCE
private static final PeriodParser INSTANCE
The singleton instance.
-
TOKEN_SEQUENCE
private static final java.lang.String TOKEN_SEQUENCE
Used to validate the correct sequence of tokens.- See Also:
- Constant Field Values
-
ZERO
private static final java.lang.String ZERO
The standard string representing a zero period.- See Also:
- Constant Field Values
-
-
Method Detail
-
getInstance
static PeriodParser getInstance()
Gets the singleton instance of the parser.- Returns:
- the instance of the parser
-
parse
Period parse(java.lang.String text)
Obtains an instance ofPeriod
from a string.This will parse the string produced by
toString()
which is a subset of the ISO8601 period formatPnYnMnDTnHnMn.nS
.The string consists of a series of numbers with a suffix identifying their meaning. The values, and suffixes, must be in the sequence year, month, day, hour, minute, second. Any of the number/suffix pairs may be omitted providing at least one is present. If the period is zero, the value is normally represented as
PT0S
. The numbers must consist of ASCII digits. Any of the numbers may be negative. Negative zero is not accepted. The number of nanoseconds is expressed as an optional fraction of the seconds. There must be at least one digit before any decimal point. There must be between 1 and 9 inclusive digits after any decimal point. The letters will all be accepted in upper or lower case. The decimal point may be either a dot or a comma.- Parameters:
text
- the input string in the format PnYnMnDTnHnMn.nS, validated not null- Returns:
- the created Period, never null
- Throws:
CalendricalParseException
- if the text cannot be parsed to a Period
-
parseDate
private void parseDate(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
-
parseTime
private void parseTime(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
-
parseNanos
private long parseNanos(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
-
prepareTime
private java.lang.String prepareTime(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
-
parseInt
private int parseInt(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)
-
parseNumber
private java.lang.String parseNumber(PeriodParser.ParseValues values, java.lang.String s)
-
validateCharactersAndOrdering
private void validateCharactersAndOrdering(java.lang.String s, java.lang.String text)
-
-