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