Class PeriodParser
- java.lang.Object
-
- javax.time.calendar.PeriodParser
-
final class PeriodParser extends java.lang.ObjectAn period parser that creates an instance ofPeriodfrom a string using the ISO8601 period formatPnYnMnDTnHnMn.nS.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classPeriodParser.ParseValuesParse values container created for each parse.
-
Field Summary
Fields Modifier and Type Field Description private static PeriodParserINSTANCEThe singleton instance.private static java.lang.StringTOKEN_SEQUENCEUsed to validate the correct sequence of tokens.private static java.lang.StringZEROThe standard string representing a zero period.
-
Constructor Summary
Constructors Modifier Constructor Description privatePeriodParser()Restricted constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static PeriodParsergetInstance()Gets the singleton instance of the parser.(package private) Periodparse(java.lang.String text)Obtains an instance ofPeriodfrom a string.private voidparseDate(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)private intparseInt(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)private longparseNanos(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)private java.lang.StringparseNumber(PeriodParser.ParseValues values, java.lang.String s)private voidparseTime(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)private java.lang.StringprepareTime(PeriodParser.ParseValues values, java.lang.String s, int baseIndex)private voidvalidateCharactersAndOrdering(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 ofPeriodfrom 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)
-
-