/* ******************************************************************************* * Copyright (C) 1996-2004, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ package com.ibm.icu.text; /** * A transliterator that removes characters. This is useful in conjunction * with a filter. */ class RemoveTransliterator extends Transliterator { /** * ID for this transliterator. */ private static String _ID = "Any-Remove"; /** * System registration hook. */ static void register() { Transliterator.registerFactory(_ID, new Transliterator.Factory() { public Transliterator getInstance(String ID) { return new RemoveTransliterator(); } }); Transliterator.registerSpecialInverse("Remove", "Null", false); } /** * Constructs a transliterator. */ public RemoveTransliterator() { super(_ID, null); } /** * Implements {@link Transliterator#handleTransliterate}. */ protected void handleTransliterate(Replaceable text, Position index, boolean incremental) { // Our caller (filteredTransliterate) has already narrowed us // to an unfiltered run. Delete it. text.replace(index.start, index.limit, ""); int len = index.limit - index.start; index.contextLimit -= len; index.limit -= len; } }