2 *******************************************************************************
3 * Copyright (C) 2011-2012, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 *******************************************************************************
7 package com.ibm.icu.dev.util;
9 import com.ibm.icu.dev.util.UnicodeTransform.Type;
10 import com.ibm.icu.lang.UCharacter;
11 import com.ibm.icu.text.Normalizer2;
17 public class IcuUnicodeNormalizerFactory implements UnicodeTransform.Factory {
19 public UnicodeTransform getInstance(Type type) {
22 return new IcuUnicodeNormalizer(Normalizer2.getNFCInstance());
24 return new IcuUnicodeNormalizer(Normalizer2.getNFKCInstance());
26 return new IcuUnicodeNormalizer(Normalizer2.getNFDInstance());
28 return new IcuUnicodeNormalizer(Normalizer2.getNFKDInstance());
30 return new CaseFolder();
32 throw new IllegalArgumentException();
36 private static class CaseFolder extends UnicodeTransform {
38 public String transform(String source) {
39 return UCharacter.foldCase(source.toString(), true);
43 private static class IcuUnicodeNormalizer extends UnicodeTransform {
44 private Normalizer2 normalizer;
46 private IcuUnicodeNormalizer(Normalizer2 normalizer) {
47 this.normalizer = normalizer;
50 public String transform(String src) {
51 return normalizer.normalize(src);
54 public boolean isTransformed(String s) {
55 return normalizer.isNormalized(s);