@@ -244,42 +244,6 @@ public boolean isFound() {
244244 "des" , "di" , "do" , "dos" , "du" , "van" , "von" ))));
245245 }
246246
247- /**
248- * This is a performance hack to avoid overhead associated with very frequent CharSequence.subSequence calls.
249- *
250- * @param cached the character sequence to cache
251- * @return a <code>CharSequence</code> that internally caches subSequence values
252- */
253- private static CharSequence cacheSubSequence (final CharSequence cached ) {
254- // return cached;
255- final CharSequence [][] cache = new CharSequence [cached .length ()][cached .length ()];
256- return new CharSequence () {
257- @ Override
258- public char charAt (final int index ) {
259- return cached .charAt (index );
260- }
261-
262- @ Override
263- public int length () {
264- return cached .length ();
265- }
266-
267- @ Override
268- public CharSequence subSequence (final int start , final int end ) {
269- if (start == end ) {
270- return "" ;
271- }
272-
273- CharSequence res = cache [start ][end - 1 ];
274- if (res == null ) {
275- res = cached .subSequence (start , end );
276- cache [start ][end - 1 ] = res ;
277- }
278- return res ;
279- }
280- };
281- }
282-
283247 /**
284248 * Joins some strings with an internal separator.
285249 * @param strings Strings to join
@@ -370,7 +334,7 @@ private PhonemeBuilder applyFinalRules(final PhonemeBuilder phonemeBuilder, fina
370334
371335 for (final Rule .Phoneme phoneme : phonemeBuilder .getPhonemes ()) {
372336 PhonemeBuilder subBuilder = PhonemeBuilder .empty (phoneme .getLanguages ());
373- final CharSequence phonemeText = cacheSubSequence ( phoneme .getPhonemeText ());
337+ final String phonemeText = phoneme .getPhonemeText (). toString ( );
374338
375339 for (int i = 0 ; i < phonemeText .length ();) {
376340 final RulesApplication rulesApplication =
@@ -484,10 +448,9 @@ public String encode(String input, final Languages.LanguageSet languageSet) {
484448 PhonemeBuilder phonemeBuilder = PhonemeBuilder .empty (languageSet );
485449
486450 // loop over each char in the input - we will handle the increment manually
487- final CharSequence inputCache = cacheSubSequence (input );
488- for (int i = 0 ; i < inputCache .length ();) {
451+ for (int i = 0 ; i < input .length ();) {
489452 final RulesApplication rulesApplication =
490- new RulesApplication (rules , inputCache , phonemeBuilder , i , maxPhonemes ).invoke ();
453+ new RulesApplication (rules , input , phonemeBuilder , i , maxPhonemes ).invoke ();
491454 i = rulesApplication .getI ();
492455 phonemeBuilder = rulesApplication .getPhonemeBuilder ();
493456 }
0 commit comments