]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/main/classes/translit/src/com/ibm/icu/text/RemoveTransliterator.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / main / classes / translit / src / com / ibm / icu / text / RemoveTransliterator.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 1996-2004, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 package com.ibm.icu.text;\r
8 \r
9 \r
10 /**\r
11  * A transliterator that removes characters.  This is useful in conjunction\r
12  * with a filter.\r
13  */\r
14 class RemoveTransliterator extends Transliterator {\r
15 \r
16     /**\r
17      * ID for this transliterator.\r
18      */\r
19     private static String _ID = "Any-Remove";\r
20 \r
21     /**\r
22      * System registration hook.\r
23      */\r
24     static void register() {\r
25         Transliterator.registerFactory(_ID, new Transliterator.Factory() {\r
26             public Transliterator getInstance(String ID) {\r
27                 return new RemoveTransliterator();\r
28             }\r
29         });\r
30         Transliterator.registerSpecialInverse("Remove", "Null", false);\r
31     }\r
32 \r
33     /**\r
34      * Constructs a transliterator.\r
35      */\r
36     public RemoveTransliterator() {\r
37         super(_ID, null);\r
38     }\r
39 \r
40     /**\r
41      * Implements {@link Transliterator#handleTransliterate}.\r
42      */\r
43     protected void handleTransliterate(Replaceable text,\r
44                                        Position index, boolean incremental) {\r
45         // Our caller (filteredTransliterate) has already narrowed us\r
46         // to an unfiltered run.  Delete it.\r
47         text.replace(index.start, index.limit, "");\r
48         int len = index.limit - index.start;\r
49         index.contextLimit -= len;\r
50         index.limit -= len;\r
51     }\r
52 }\r