Top Fields Constructors Methods
com.ibm.icu.impl.number.parse

public Class AffixMatcher

extends Object
implements NumberParseMatcher
Class Inheritance
All Implemented Interfaces
com.ibm.icu.impl.number.parse.NumberParseMatcher
Imports
java.util.ArrayList, .Collections, .Comparator, .Objects, com.ibm.icu.impl.StandardPlural, .StringSegment, com.ibm.icu.impl.number.AffixPatternProvider, .AffixUtils, .PatternStringUtils, .PatternStringUtils.PatternSignType

Author
sffc

Field Summary

Modifier and TypeField and Description
public static final Comparator<AffixMatcher>
COMPARATOR

Comparator for two AffixMatcher instances which prioritizes longer prefixes followed by longer suffixes, ensuring that the longest prefix/suffix pair is always chosen.

private final int
private final AffixPatternMatcher
private final AffixPatternMatcher

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static void
createMatchers(AffixPatternProvider patternInfo, NumberParserImpl output, AffixTokenMatcherFactory factory, IgnorablesMatcher ignorables, int parseFlags)

public boolean
equals(Object
the reference object with which to compare.
_other
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
private static final AffixMatcher
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for the object.
private static boolean
isInteresting(AffixPatternProvider patternInfo, IgnorablesMatcher ignorables, int parseFlags)

private static int
length(AffixPatternMatcher matcher)

Helper method to return the length of the given AffixPatternMatcher.

public boolean
match(StringSegment
The StringSegment to match against. Matches always start at the beginning of the segment. The segment is guaranteed to contain at least one char.
segment
,
ParsedNumber
The data structure to store results if the match succeeds.
result
)

Implements com.ibm.icu.impl.number.parse.NumberParseMatcher.match.

Runs this matcher starting at the beginning of the given StringSegment.
pack-priv static boolean
matched(AffixPatternMatcher affix, String patternString)

Helper method to return whether the given AffixPatternMatcher equals the given pattern string.

public void
postProcess(ParsedNumber
The data structure to store results.
result
)

Implements com.ibm.icu.impl.number.parse.NumberParseMatcher.postProcess.

Method called at the end of a parse, after all matchers have failed to consume any more chars.
public boolean
smokeTest(StringSegment
The segment to check against.
segment
)

Implements com.ibm.icu.impl.number.parse.NumberParseMatcher.smokeTest.

Performs a fast "smoke check" for whether or not this matcher could possibly match against the given string segment.
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

COMPARATORback to summary
public static final Comparator<AffixMatcher> COMPARATOR

Comparator for two AffixMatcher instances which prioritizes longer prefixes followed by longer suffixes, ensuring that the longest prefix/suffix pair is always chosen.

flagsback to summary
private final int flags
prefixback to summary
private final AffixPatternMatcher prefix
suffixback to summary
private final AffixPatternMatcher suffix

Constructor Detail

AffixMatcherback to summary
private AffixMatcher(AffixPatternMatcher prefix, AffixPatternMatcher suffix, int flags)

Method Detail

createMatchersback to summary
public static void createMatchers(AffixPatternProvider patternInfo, NumberParserImpl output, AffixTokenMatcherFactory factory, IgnorablesMatcher ignorables, int parseFlags)
equalsback to summary
public boolean equals(Object _other)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
_other:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getInstanceback to summary
private static final AffixMatcher getInstance(AffixPatternMatcher prefix, AffixPatternMatcher suffix, int flags)
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object.

Annotations
@Override
isInterestingback to summary
private static boolean isInteresting(AffixPatternProvider patternInfo, IgnorablesMatcher ignorables, int parseFlags)
lengthback to summary
private static int length(AffixPatternMatcher matcher)

Helper method to return the length of the given AffixPatternMatcher. Returns 0 for null.

matchback to summary
public boolean match(StringSegment segment, ParsedNumber result)

Implements com.ibm.icu.impl.number.parse.NumberParseMatcher.match.

Doc from com.ibm.icu.impl.number.parse.NumberParseMatcher.match.

Runs this matcher starting at the beginning of the given StringSegment. If this matcher finds something interesting in the StringSegment, it should update the offset of the StringSegment corresponding to how many chars were matched.

Parameters
segment:StringSegment

The StringSegment to match against. Matches always start at the beginning of the segment. The segment is guaranteed to contain at least one char.

result:ParsedNumber

The data structure to store results if the match succeeds.

Returns:boolean

Whether this matcher thinks there may be more interesting chars beyond the end of the string segment.

Annotations
@Override
matchedback to summary
pack-priv static boolean matched(AffixPatternMatcher affix, String patternString)

Helper method to return whether the given AffixPatternMatcher equals the given pattern string. Either both arguments must be null or the pattern string inside the AffixPatternMatcher must equal the given pattern string.

postProcessback to summary
public void postProcess(ParsedNumber result)

Implements com.ibm.icu.impl.number.parse.NumberParseMatcher.postProcess.

Doc from com.ibm.icu.impl.number.parse.NumberParseMatcher.postProcess.

Method called at the end of a parse, after all matchers have failed to consume any more chars. Allows a matcher to make final modifications to the result given the knowledge that no more matches are possible.

Parameters
result:ParsedNumber

The data structure to store results.

Annotations
@Override
smokeTestback to summary
public boolean smokeTest(StringSegment segment)

Implements com.ibm.icu.impl.number.parse.NumberParseMatcher.smokeTest.

Doc from com.ibm.icu.impl.number.parse.NumberParseMatcher.smokeTest.

Performs a fast "smoke check" for whether or not this matcher could possibly match against the given string segment. The test should be as fast as possible but also as restrictive as possible. For example, matchers can maintain a UnicodeSet of all code points that count possibly start a match. Matchers should use the StringSegment#startsWith method in order to correctly handle case folding.

Parameters
segment:StringSegment

The segment to check against.

Returns:boolean

true if the matcher might be able to match against this segment; false if it definitely will not be able to match.

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override