src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java
changeset 47359 e1a6c0168741
parent 47216 71c04702a3d5
child 48409 5ab69533994b
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java	Tue Sep 05 13:40:14 2017 +0200
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java	Wed Oct 18 13:25:49 2017 -0700
@@ -1,6 +1,6 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * @LastModified: Oct 2017
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,19 +21,17 @@
 
 package com.sun.org.apache.xml.internal.utils;
 
-import java.util.Vector;
+import java.text.CollationElementIterator;
 import java.text.Collator;
 import java.text.RuleBasedCollator;
-import java.text.CollationElementIterator;
 import java.util.Locale;
-import java.text.CollationKey;
 
 
 /**
 * International friendly string comparison with case-order
  * @author Igor Hersht, igorh@ca.ibm.com
 */
-public class StringComparable implements Comparable  {
+public class StringComparable implements Comparable<StringComparable>  {
 
      public final static int UNKNOWN_CASE = -1;
      public final static int UPPER_CASE = 1;
@@ -45,7 +43,8 @@
      private String m_caseOrder;
      private int m_mask = 0xFFFFFFFF;
 
-    public StringComparable(final String text, final Locale locale, final Collator collator, final String caseOrder){
+    public StringComparable(final String text, final Locale locale,
+            final Collator collator, final String caseOrder){
          m_text =  text;
          m_locale = locale;
          m_collator = (RuleBasedCollator)collator;
@@ -53,23 +52,25 @@
          m_mask = getMask(m_collator.getStrength());
     }
 
-   public final static Comparable getComparator( final String text, final Locale locale, final Collator collator, final String caseOrder){
-       if((caseOrder == null) ||(caseOrder.length() == 0)){// no case-order specified
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    public final static Comparable getComparator( final String text, final Locale locale,
+            final Collator collator, final String caseOrder){
+        if((caseOrder == null) ||(caseOrder.length() == 0)){// no case-order specified
             return  ((RuleBasedCollator)collator).getCollationKey(text);
-       }else{
+        }else{
             return new StringComparable(text, locale, collator, caseOrder);
-       }
-   }
+        }
+    }
 
    public final String toString(){return m_text;}
 
-   public int compareTo(Object o) {
-   final String pattern = ((StringComparable)o).toString();
-   if(m_text.equals(pattern)){//Code-point equals
-      return 0;
-   }
-   final int savedStrength = m_collator.getStrength();
-   int comp = 0;
+     public int compareTo(StringComparable o) {
+     final String pattern = o.toString();
+     if(m_text.equals(pattern)){//Code-point equals
+        return 0;
+     }
+     final int savedStrength = m_collator.getStrength();
+     int comp = 0;
       // Is there difference more significant than case-order?
      if(((savedStrength == Collator.PRIMARY) || (savedStrength == Collator.SECONDARY))){
          comp = m_collator.compare(m_text, pattern );