1 /* GENERATED SOURCE. DO NOT MODIFY. */ 2 /* 3 ******************************************************************************* 4 * Copyright (C) 2002-2010, International Business Machines Corporation and * 5 * others. All Rights Reserved. * 6 ******************************************************************************* 7 */ 8 package android.icu.impl; 9 10 import android.icu.text.Replaceable; 11 import android.icu.text.ReplaceableString; 12 import android.icu.text.Transliterator; 13 import android.icu.text.UnicodeMatcher; 14 /** 15 * @author Ram 16 * @hide Only a subset of ICU is exposed in Android 17 */ 18 //This class contains utility functions so testing not needed 19 ///CLOVER:OFF 20 public class UtilityExtensions { 21 /** 22 * Append the given string to the rule. Calls the single-character 23 * version of appendToRule for each character. 24 */ 25 public static void appendToRule(StringBuffer rule, 26 String text, 27 boolean isLiteral, 28 boolean escapeUnprintable, 29 StringBuffer quoteBuf) { 30 for (int i=0; i<text.length(); ++i) { 31 // Okay to process in 16-bit code units here 32 Utility.appendToRule(rule, text.charAt(i), isLiteral, escapeUnprintable, quoteBuf); 33 } 34 } 35 36 37 /** 38 * Given a matcher reference, which may be null, append its 39 * pattern as a literal to the given rule. 40 */ 41 public static void appendToRule(StringBuffer rule, 42 UnicodeMatcher matcher, 43 boolean escapeUnprintable, 44 StringBuffer quoteBuf) { 45 if (matcher != null) { 46 appendToRule(rule, matcher.toPattern(escapeUnprintable), 47 true, escapeUnprintable, quoteBuf); 48 } 49 } 50 /** 51 * For debugging purposes; format the given text in the form 52 * aaa{bbb|ccc|ddd}eee, where the {} indicate the context start 53 * and limit, and the || indicate the start and limit. 54 */ 55 public static String formatInput(ReplaceableString input, 56 Transliterator.Position pos) { 57 StringBuffer appendTo = new StringBuffer(); 58 formatInput(appendTo, input, pos); 59 return android.icu.impl.Utility.escape(appendTo.toString()); 60 } 61 62 /** 63 * For debugging purposes; format the given text in the form 64 * aaa{bbb|ccc|ddd}eee, where the {} indicate the context start 65 * and limit, and the || indicate the start and limit. 66 */ 67 public static StringBuffer formatInput(StringBuffer appendTo, 68 ReplaceableString input, 69 Transliterator.Position pos) { 70 if (0 <= pos.contextStart && 71 pos.contextStart <= pos.start && 72 pos.start <= pos.limit && 73 pos.limit <= pos.contextLimit && 74 pos.contextLimit <= input.length()) { 75 76 String b, c, d; 77 //a = input.substring(0, pos.contextStart); 78 b = input.substring(pos.contextStart, pos.start); 79 c = input.substring(pos.start, pos.limit); 80 d = input.substring(pos.limit, pos.contextLimit); 81 //e = input.substring(pos.contextLimit, input.length()); 82 appendTo.//append(a). 83 append('{').append(b). 84 append('|').append(c).append('|').append(d). 85 append('}') 86 //.append(e) 87 ; 88 } else { 89 appendTo.append("INVALID Position {cs=" + 90 pos.contextStart + ", s=" + pos.start + ", l=" + 91 pos.limit + ", cl=" + pos.contextLimit + "} on " + 92 input); 93 } 94 return appendTo; 95 } 96 97 /** 98 * Convenience method. 99 */ 100 public static String formatInput(Replaceable input, 101 Transliterator.Position pos) { 102 return formatInput((ReplaceableString) input, pos); 103 } 104 105 /** 106 * Convenience method. 107 */ 108 public static StringBuffer formatInput(StringBuffer appendTo, 109 Replaceable input, 110 Transliterator.Position pos) { 111 return formatInput(appendTo, (ReplaceableString) input, pos); 112 } 113 114 } 115 //CLOVER:ON