/* GENERATED SOURCE. DO NOT MODIFY. */ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /** ******************************************************************************* * Copyright (C) 2001-2013, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ package android.icu.util; import android.icu.lang.UCharacter; /** * A string used as a key in java.util.Hashtable and other * collections. It retains case information, but its equals() and * hashCode() methods ignore case. * @hide Only a subset of ICU is exposed in Android */ public class CaseInsensitiveString { private String string; private int hash = 0; private String folded = null; private static String foldCase(String foldee) { return UCharacter.foldCase(foldee, true); } private void getFolded() { if (folded == null) { folded = foldCase(string); } } /** * Constructs an CaseInsentiveString object from the given string * @param s The string to construct this object from */ public CaseInsensitiveString(String s) { string = s; } /** * returns the underlying string * @return String */ public String getString() { return string; } /** * Compare the object with this * @param o Object to compare this object with */ @Override public boolean equals(Object o) { if (o == null) { return false; } if (this == o) { return true; } if (o instanceof CaseInsensitiveString) { getFolded(); CaseInsensitiveString cis = (CaseInsensitiveString) o; cis.getFolded(); return folded.equals(cis.folded); } return false; } /** * Returns the hashCode of this object * @return int hashcode */ @Override public int hashCode() { getFolded(); if (hash == 0) { hash = folded.hashCode(); } return hash; } /** * Overrides superclass method * @return a string representation of the object. */ @Override public String toString() { return string; } }