blob: 928855ae2f65f01a95f0544ec765d6b14f52cd6b [file] [log] [blame]
/* GENERATED SOURCE. DO NOT MODIFY. */
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
package android.icu.impl.number.parse;
import android.icu.impl.StringSegment;
import android.icu.text.DecimalFormatSymbols;
import android.icu.text.UnicodeSet;
/**
* @author sffc
* @hide Only a subset of ICU is exposed in Android
*
*/
public class NanMatcher extends SymbolMatcher {
private static final NanMatcher DEFAULT = new NanMatcher("NaN");
public static NanMatcher getInstance(DecimalFormatSymbols symbols, int parseFlags) {
String symbolString = symbols.getNaN();
if (DEFAULT.string.equals(symbolString)) {
return DEFAULT;
} else {
return new NanMatcher(symbolString);
}
}
private NanMatcher(String symbolString) {
super(symbolString, UnicodeSet.EMPTY);
}
@Override
public UnicodeSet getLeadCodePoints() {
// Overriding this here to allow use of statically allocated sets
int leadCp = string.codePointAt(0);
UnicodeSet s = UnicodeSetStaticCache.get(UnicodeSetStaticCache.Key.NAN_LEAD);
if (s.contains(leadCp)) {
return s;
} else {
return super.getLeadCodePoints();
}
}
@Override
protected boolean isDisabled(ParsedNumber result) {
return result.seenNumber();
}
@Override
protected void accept(StringSegment segment, ParsedNumber result) {
result.flags |= ParsedNumber.FLAG_NAN;
result.setCharsConsumed(segment);
}
@Override
public String toString() {
return "<NanMatcher>";
}
}