From c3abc328d7bfcd294f895e437677723e38201120 Mon Sep 17 00:00:00 2001 From: Elango Cheran Date: Fri, 28 Mar 2025 16:23:09 -0700 Subject: [PATCH] ICU-22789 Refactor and move up member field BreakIterator initialization Move the initialization into the constructor of the concrete Segmenter class, rather than relying on the first line of each relevant helper util class method to do the initialization --- .../com/ibm/icu/text/segmenter/LocalizedSegmenter.java | 2 ++ .../com/ibm/icu/text/segmenter/RuleBasedSegmenter.java | 2 ++ .../com/ibm/icu/text/segmenter/SegmentsImplUtils.java | 9 --------- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/LocalizedSegmenter.java b/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/LocalizedSegmenter.java index 0e297c483dd..f1464c6a7c5 100644 --- a/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/LocalizedSegmenter.java +++ b/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/LocalizedSegmenter.java @@ -95,6 +95,8 @@ public class LocalizedSegmenter implements Segmenter { this.source = source; this.segmenter = segmenter; this.breakIter = this.segmenter.getNewBreakIterator(); + + this.breakIter.setText(source); } @Override diff --git a/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/RuleBasedSegmenter.java b/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/RuleBasedSegmenter.java index d3c04e42f6d..044fcbfafeb 100644 --- a/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/RuleBasedSegmenter.java +++ b/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/RuleBasedSegmenter.java @@ -60,6 +60,8 @@ public class RuleBasedSegmenter implements Segmenter { this.source = source; this.segmenter = segmenter; this.breakIter = this.segmenter.getNewBreakIterator(); + + this.breakIter.setText(source); } @Override diff --git a/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/SegmentsImplUtils.java b/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/SegmentsImplUtils.java index 7e7124d749c..dd6c8ded60c 100644 --- a/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/SegmentsImplUtils.java +++ b/icu4j/main/core/src/main/java/com/ibm/icu/text/segmenter/SegmentsImplUtils.java @@ -11,12 +11,9 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -// Global TODO: make initialization of breakIterator a prerequisite public class SegmentsImplUtils { public static boolean isBoundary(BreakIterator breakIter, CharSequence source, int i) { - breakIter.setText(source); - return breakIter.isBoundary(i); } @@ -25,9 +22,6 @@ public class SegmentsImplUtils { } public static Segment segmentAt(BreakIterator breakIter, CharSequence sourceSequence, int i) { - // TODO: make initialization of breakIterator a prerequisite - breakIter.setText(sourceSequence); - int start; int limit; @@ -86,9 +80,6 @@ public class SegmentsImplUtils { } public static IntStream boundariesBackFrom(BreakIterator breakIter, CharSequence sourceSequence, int i) { - // TODO: make initialization of breakIterator a prerequisite - breakIter.setText(sourceSequence); - int sourceLength = sourceSequence.length(); if (i < 0) { return IntStream.empty();