1
16 package org.joda.time.format;
17
18
19
25 class InternalParserDateTimeParser implements DateTimeParser, InternalParser {
26
27 private final InternalParser underlying;
28
29 static DateTimeParser of(InternalParser underlying) {
30 if (underlying instanceof DateTimeParserInternalParser) {
31 return ((DateTimeParserInternalParser) underlying).getUnderlying();
32 }
33 if (underlying instanceof DateTimeParser) {
34 return (DateTimeParser) underlying;
35 }
36 if (underlying == null) {
37 return null;
38 }
39 return new InternalParserDateTimeParser(underlying);
40 }
41
42 private InternalParserDateTimeParser(InternalParser underlying) {
43 this.underlying = underlying;
44 }
45
46
47 public int estimateParsedLength() {
48 return underlying.estimateParsedLength();
49 }
50
51 public int parseInto(DateTimeParserBucket bucket, CharSequence text, int position) {
52 return underlying.parseInto(bucket, text, position);
53 }
54
55 public int parseInto(DateTimeParserBucket bucket, String text, int position) {
56 return underlying.parseInto(bucket, text, position);
57 }
58
59
60 @Override
61 public boolean equals(Object obj) {
62 if (obj == this) {
63 return true;
64 }
65 if (obj instanceof InternalParserDateTimeParser) {
66 InternalParserDateTimeParser other = (InternalParserDateTimeParser) obj;
67 return underlying.equals(other.underlying);
68 }
69 return false;
70 }
71
72 }
73