Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrbrooks2010-06-23 19:35:29 +0000
committerrbrooks2010-06-23 19:35:29 +0000
commite21c06ffcefe0698b4d6e1feb0df01c2d838870f (patch)
tree4b13d8d3e18d32e5c9e3ff5ba8337920270eb9ad /plugins/org.eclipse.osee.framework.jdk.core
parent6c4f7c9d68e2a18d42d4d3ae0bacd8d408458329 (diff)
downloadorg.eclipse.osee-e21c06ffcefe0698b4d6e1feb0df01c2d838870f.tar.gz
org.eclipse.osee-e21c06ffcefe0698b4d6e1feb0df01c2d838870f.tar.xz
org.eclipse.osee-e21c06ffcefe0698b4d6e1feb0df01c2d838870f.zip
fix bug in hashcode and equals method for CaseInsensitiveString
Diffstat (limited to 'plugins/org.eclipse.osee.framework.jdk.core')
-rw-r--r--plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/type/CaseInsensitiveString.java91
1 files changed, 47 insertions, 44 deletions
diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/type/CaseInsensitiveString.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/type/CaseInsensitiveString.java
index 09a08b3bf0b..9ed7addd944 100644
--- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/type/CaseInsensitiveString.java
+++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/type/CaseInsensitiveString.java
@@ -14,48 +14,51 @@ package org.eclipse.osee.framework.jdk.core.type;
* @author Ryan D. Brooks
*/
public class CaseInsensitiveString implements CharSequence {
- private String string;
-
- public CaseInsensitiveString(String string) {
- this.string = string;
- }
-
- @Override
- public String toString() {
- return string;
- }
-
- @Override
- public int hashCode() {
- return ((string == null) ? 0 : string.hashCode());
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof CaseInsensitiveString) {
- if (string == null) {
- return string == ((CaseInsensitiveString) obj).string;
- } else {
- return string.equalsIgnoreCase(((CaseInsensitiveString) obj).string);
- }
- } else if (obj instanceof String) {
- return string.equalsIgnoreCase(((String) obj));
- }
- return false;
- }
-
- @Override
- public int length() {
- return string == null ? 0 : string.length();
- }
-
- @Override
- public char charAt(int index) {
- return string.charAt(index);
- }
-
- @Override
- public CharSequence subSequence(int beginIndex, int endIndex) {
- return string.subSequence(beginIndex, endIndex);
- }
+ private final String originalString;
+ private final String upperCaseString;
+
+ public CaseInsensitiveString(String string) {
+ this.originalString = string;
+ upperCaseString = string.toUpperCase();
+ }
+
+ @Override
+ public String toString() {
+ return originalString;
+ }
+
+ @Override
+ public int hashCode() {
+ return ((upperCaseString == null) ? 0 : upperCaseString.hashCode());
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof CaseInsensitiveString) {
+ CaseInsensitiveString other = ((CaseInsensitiveString) obj);
+ if (upperCaseString == null) {
+ return other.upperCaseString == null;
+ } else {
+ return upperCaseString.equals(other.upperCaseString);
+ }
+ } else if (obj instanceof String) {
+ return upperCaseString.equalsIgnoreCase(((String) obj));
+ }
+ return false;
+ }
+
+ @Override
+ public int length() {
+ return originalString == null ? 0 : originalString.length();
+ }
+
+ @Override
+ public char charAt(int index) {
+ return originalString.charAt(index);
+ }
+
+ @Override
+ public CharSequence subSequence(int beginIndex, int endIndex) {
+ return originalString.subSequence(beginIndex, endIndex);
+ }
} \ No newline at end of file

Back to the top