]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-52_1/main/tests/framework/src/com/ibm/icu/dev/util/IcuUnicodeNormalizerFactory.java
Clean up imports.
[Dictionary.git] / jars / icu4j-52_1 / main / tests / framework / src / com / ibm / icu / dev / util / IcuUnicodeNormalizerFactory.java
1 /*
2  *******************************************************************************
3  * Copyright (C) 2011-2012, International Business Machines Corporation and         *
4  * others. All Rights Reserved.                                                *
5  *******************************************************************************
6  */
7 package com.ibm.icu.dev.util;
8
9 import com.ibm.icu.dev.util.UnicodeTransform.Type;
10 import com.ibm.icu.lang.UCharacter;
11 import com.ibm.icu.text.Normalizer2;
12
13 /**
14  * @author markdavis
15  *
16  */
17 public class IcuUnicodeNormalizerFactory implements UnicodeTransform.Factory {
18
19     public UnicodeTransform getInstance(Type type) {
20         switch (type) {
21         case NFC:
22             return new IcuUnicodeNormalizer(Normalizer2.getNFCInstance());
23         case NFKC:
24             return new IcuUnicodeNormalizer(Normalizer2.getNFKCInstance());
25         case NFD:
26             return new IcuUnicodeNormalizer(Normalizer2.getNFDInstance());
27         case NFKD:
28             return new IcuUnicodeNormalizer(Normalizer2.getNFKDInstance());
29         case CASEFOLD:
30             return new CaseFolder();
31         default:
32             throw new IllegalArgumentException();
33         }
34     }
35
36     private static class CaseFolder extends UnicodeTransform {
37         @Override
38         public String transform(String source) {
39             return UCharacter.foldCase(source.toString(), true);
40         }
41     }
42
43     private static class IcuUnicodeNormalizer extends UnicodeTransform {
44         private Normalizer2 normalizer;
45
46         private IcuUnicodeNormalizer(Normalizer2 normalizer) {
47             this.normalizer = normalizer;
48         }
49
50         public String transform(String src) {
51             return normalizer.normalize(src);
52         }
53
54         public boolean isTransformed(String s) {
55             return normalizer.isNormalized(s);
56         }
57     }
58 }