1 /* GENERATED SOURCE. DO NOT MODIFY. */ 2 // © 2017 and later: Unicode, Inc. and others. 3 // License & terms of use: http://www.unicode.org/copyright.html#License 4 package ohos.global.icu.impl.number.parse; 5 6 import static ohos.global.icu.impl.number.parse.ParsingUtils.safeContains; 7 8 import ohos.global.icu.impl.StaticUnicodeSets; 9 import ohos.global.icu.impl.StringSegment; 10 import ohos.global.icu.text.DecimalFormatSymbols; 11 12 /** 13 * @author sffc 14 * @hide exposed on OHOS 15 * 16 */ 17 public class MinusSignMatcher extends SymbolMatcher { 18 19 private static final MinusSignMatcher DEFAULT = new MinusSignMatcher(false); 20 private static final MinusSignMatcher DEFAULT_ALLOW_TRAILING = new MinusSignMatcher(true); 21 getInstance(DecimalFormatSymbols symbols, boolean allowTrailing)22 public static MinusSignMatcher getInstance(DecimalFormatSymbols symbols, boolean allowTrailing) { 23 String symbolString = symbols.getMinusSignString(); 24 if (safeContains(DEFAULT.uniSet, symbolString)) { 25 return allowTrailing ? DEFAULT_ALLOW_TRAILING : DEFAULT; 26 } else { 27 return new MinusSignMatcher(symbolString, allowTrailing); 28 } 29 } 30 31 private final boolean allowTrailing; 32 MinusSignMatcher(String symbolString, boolean allowTrailing)33 private MinusSignMatcher(String symbolString, boolean allowTrailing) { 34 super(symbolString, DEFAULT.uniSet); 35 this.allowTrailing = allowTrailing; 36 } 37 MinusSignMatcher(boolean allowTrailing)38 private MinusSignMatcher(boolean allowTrailing) { 39 super(StaticUnicodeSets.Key.MINUS_SIGN); 40 this.allowTrailing = allowTrailing; 41 } 42 43 @Override isDisabled(ParsedNumber result)44 protected boolean isDisabled(ParsedNumber result) { 45 return !allowTrailing && result.seenNumber(); 46 } 47 48 @Override accept(StringSegment segment, ParsedNumber result)49 protected void accept(StringSegment segment, ParsedNumber result) { 50 result.flags |= ParsedNumber.FLAG_NEGATIVE; 51 result.setCharsConsumed(segment); 52 } 53 54 @Override toString()55 public String toString() { 56 return "<MinusSignMatcher>"; 57 } 58 } 59