KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tapestry > util > text > AsciiCharacterTranslator


1 // Copyright 2004, 2005 The Apache Software Foundation
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15 package org.apache.tapestry.util.text;
16
17 /**
18  * An object that translates selected ASCII characters into equivalent strings.
19  *
20  * @author mb
21  * @since 4.0
22  */

23 public class AsciiCharacterTranslator implements ICharacterTranslator
24 {
25     private String JavaDoc[] _charMap;
26     
27     /**
28      * Creates and initializes a new translator that translates the provided
29      * ASCII characters into strings. All other characters will be translated to null.
30      *
31      * @param characterMap an array of pairs of strings.
32      * Each pair consists of a key that must be a single ASCII character,
33      * and a value that is its equivalent string.
34      */

35     public AsciiCharacterTranslator(String JavaDoc[][] characterMap)
36     {
37         _charMap = new String JavaDoc[128];
38         
39         int pairCount = characterMap.length;
40         for (int i = 0; i < pairCount; i++) {
41             String JavaDoc[] pair = characterMap[i];
42             if (pair.length != 2)
43                 continue;
44             String JavaDoc key = pair[0];
45             String JavaDoc value = pair[1];
46             if (key.length() != 1)
47                 continue;
48             char ch = key.charAt(0);
49             if (ch >= 128)
50                 continue;
51             
52             _charMap[ch] = value;
53         }
54     }
55     
56     /**
57      * @see org.apache.tapestry.util.text.ICharacterTranslator#translate(char)
58      */

59     public String JavaDoc translate(char ch) {
60         if (ch >= 128)
61             return null;
62         return _charMap[ch];
63     }
64 }
65
Popular Tags