KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > ibm > icu > impl > UtilityExtensions


1 /*
2  *******************************************************************************
3  * Copyright (C) 2002-2004, International Business Machines Corporation and *
4  * others. All Rights Reserved. *
5  *******************************************************************************
6  */

7 package com.ibm.icu.impl;
8
9 import com.ibm.icu.text.Replaceable;
10 import com.ibm.icu.text.ReplaceableString;
11 import com.ibm.icu.text.UnicodeMatcher;
12 import com.ibm.icu.text.Transliterator;
13 /**
14  * @author Ram
15  */

16 //This class contains utility functions so testing not needed
17
///CLOVER:OFF
18
public class UtilityExtensions {
19     /**
20      * Append the given string to the rule. Calls the single-character
21      * version of appendToRule for each character.
22      */

23     public static void appendToRule(StringBuffer JavaDoc rule,
24                                     String JavaDoc text,
25                                     boolean isLiteral,
26                                     boolean escapeUnprintable,
27                                     StringBuffer JavaDoc quoteBuf) {
28         for (int i=0; i<text.length(); ++i) {
29             // Okay to process in 16-bit code units here
30
Utility.appendToRule(rule, text.charAt(i), isLiteral, escapeUnprintable, quoteBuf);
31         }
32     }
33
34
35     /**
36      * Given a matcher reference, which may be null, append its
37      * pattern as a literal to the given rule.
38      */

39     public static void appendToRule(StringBuffer JavaDoc rule,
40                                     UnicodeMatcher matcher,
41                                     boolean escapeUnprintable,
42                                     StringBuffer JavaDoc quoteBuf) {
43         if (matcher != null) {
44             appendToRule(rule, matcher.toPattern(escapeUnprintable),
45                          true, escapeUnprintable, quoteBuf);
46         }
47     }
48     /**
49      * For debugging purposes; format the given text in the form
50      * aaa{bbb|ccc|ddd}eee, where the {} indicate the context start
51      * and limit, and the || indicate the start and limit.
52      */

53     public static String JavaDoc formatInput(ReplaceableString input,
54                                      Transliterator.Position pos) {
55         StringBuffer JavaDoc appendTo = new StringBuffer JavaDoc();
56         formatInput(appendTo, input, pos);
57         return com.ibm.icu.impl.Utility.escape(appendTo.toString());
58     }
59
60     /**
61      * For debugging purposes; format the given text in the form
62      * aaa{bbb|ccc|ddd}eee, where the {} indicate the context start
63      * and limit, and the || indicate the start and limit.
64      */

65     public static StringBuffer JavaDoc formatInput(StringBuffer JavaDoc appendTo,
66                                            ReplaceableString input,
67                                            Transliterator.Position pos) {
68         if (0 <= pos.contextStart &&
69             pos.contextStart <= pos.start &&
70             pos.start <= pos.limit &&
71             pos.limit <= pos.contextLimit &&
72             pos.contextLimit <= input.length()) {
73
74             String JavaDoc b, c, d;
75             //a = input.substring(0, pos.contextStart);
76
b = input.substring(pos.contextStart, pos.start);
77             c = input.substring(pos.start, pos.limit);
78             d = input.substring(pos.limit, pos.contextLimit);
79             //e = input.substring(pos.contextLimit, input.length());
80
appendTo.//append(a).
81
append('{').append(b).
82                 append('|').append(c).append('|').append(d).
83                 append('}')
84                 //.append(e)
85
;
86         } else {
87             appendTo.append("INVALID Position {cs=" +
88                             pos.contextStart + ", s=" + pos.start + ", l=" +
89                             pos.limit + ", cl=" + pos.contextLimit + "} on " +
90                             input);
91         }
92         return appendTo;
93     }
94
95     /**
96      * Convenience method.
97      */

98     public static String JavaDoc formatInput(Replaceable input,
99                                      Transliterator.Position pos) {
100         return formatInput((ReplaceableString) input, pos);
101     }
102
103     /**
104      * Convenience method.
105      */

106     public static StringBuffer JavaDoc formatInput(StringBuffer JavaDoc appendTo,
107                                            Replaceable input,
108                                            Transliterator.Position pos) {
109         return formatInput(appendTo, (ReplaceableString) input, pos);
110     }
111
112 }
113 //CLOVER:ON
Popular Tags