Author: juanpablo
Date: Fri Dec 27 10:24:38 2013
New Revision: 1553662

URL: http://svn.apache.org/r1553662
Log:
(missing from yesterday's commit) sonar: Performance - Method invokes 
inefficient Number constructor; use static valueOf instead

sonar: Correctness - Nullcheck of value previously dereferenced

braces for one-line, indented ifs/whiles

Modified:
    
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/comparators/HumanComparator.java

Modified: 
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/comparators/HumanComparator.java
URL: 
http://svn.apache.org/viewvc/jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/comparators/HumanComparator.java?rev=1553662&r1=1553661&r2=1553662&view=diff
==============================================================================
--- 
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/comparators/HumanComparator.java
 (original)
+++ 
jspwiki/trunk/jspwiki-war/src/main/java/org/apache/wiki/util/comparators/HumanComparator.java
 Fri Dec 27 10:24:38 2013
@@ -31,8 +31,8 @@ import org.apache.commons.lang.StringUti
  * String.compareTo().
  * 
  */
-public class HumanComparator implements Comparator<String>
-{
+public class HumanComparator implements Comparator< String > {
+
     // Constants for categorising characters and specifying category level
     // ordering
     public enum CharType
@@ -140,8 +140,8 @@ public class HumanComparator implements 
                 // If they're not digits, use character to character comparison
                 if( type1 != CharType.TYPE_DIGIT )
                 {
-                    Character ch1 = new Character( c1 );
-                    Character ch2 = new Character( c2 );
+                    Character ch1 = Character.valueOf( c1 );
+                    Character ch2 = Character.valueOf( c2 );
                     return ch1.compareTo( ch2 );
                 }
 
@@ -155,8 +155,9 @@ public class HumanComparator implements 
                 }
 
                 // No result yet, spin through the digits and continue trying
-                while ( idx < len1 && idx < len2 && Character.isDigit( s1[idx] 
) )
-                    idx++;
+                while ( idx < len1 && idx < len2 && Character.isDigit( s1[idx] 
) ) {
+                       idx++;
+                }
             }
         }
 
@@ -221,20 +222,23 @@ public class HumanComparator implements 
     {
         // Calculate the integer value of the left hand side
         int idx = offset;
-        while ( idx < left.length && Character.isDigit( left[idx] ) )
-            idx++;
+        while ( idx < left.length && Character.isDigit( left[idx] ) ) {
+               idx++;
+        }
         int leftLen = idx - offset;
         int leftValue = Integer.valueOf( new String( left, offset, leftLen ) );
 
         // Calculate the integer value of the right hand side
         idx = offset;
-        while ( idx < right.length && Character.isDigit( right[idx] ) )
-            idx++;
+        while ( idx < right.length && Character.isDigit( right[idx] ) ) {
+               idx++;
+        }
         int rightLen = idx - offset;
         int rightValue = Integer.valueOf( new String( right, offset, rightLen 
) );
 
-        if( leftValue == rightValue )
+        if( leftValue == rightValue ) {
             return leftLen - rightLen; // Same value so use the lengths
+        }
         return leftValue - rightValue; // Otherwise compare the values
     }
 
@@ -244,21 +248,20 @@ public class HumanComparator implements 
     }
 
     /**
-     * Very broadly characterises a character as a digit, a letter or a
-     * punctuation character.
+     * Very broadly characterises a character as a digit, a letter or a 
punctuation character.
      * 
      * @param c <code>char</code> to be characterised
      * @return <code>IS_DIGIT</code> if it's a digit, <code>IS_LETTER</code> if
      *         it's a letter, <code>IS_PUNC</code> otherwise.
      */
-    private CharType mapCharTypes( char c )
-    {
-        if( Character.isDigit( c ) )
+    private CharType mapCharTypes( char c ) {
+        if( Character.isDigit( c ) ) {
             return CharType.TYPE_DIGIT;
-        else if( Character.isLetter( c ) )
+        } else if( Character.isLetter( c ) ) {
             return CharType.TYPE_LETTER;
-        else
+        } else {
             return CharType.TYPE_OTHER;
+        }
     }
 
     /**
@@ -274,20 +277,19 @@ public class HumanComparator implements 
      *             <code>sortOrder</code> is not exactly 3 different
      *             <code>CharType</code>.
      */
-    public void setSortOrder( CharType[] sortOrder )
-    {
-        if( this == DEFAULT_HUMAN_COMPARATOR )
-            throw new IllegalArgumentException( "Can't call setters on default 
" + this.getClass().getName() );
+    public void setSortOrder( CharType[] sortOrder ) {
+        if( this == DEFAULT_HUMAN_COMPARATOR ) {
+               throw new IllegalArgumentException( "Can't call setters on 
default " + HumanComparator.class.getName() );
+        }
 
         // Sanity check the sort order
-        if( sortOrder.length != 3 )
-        {
+        if( sortOrder == null || sortOrder.length != 3 ) {
             throw new IllegalArgumentException( "There must be exactly three 
elements in the sort order" );
         }
-        if( sortOrder[0] == sortOrder[1] || sortOrder[0] == sortOrder[2] || 
sortOrder[1] == sortOrder[2] )
-        {
+        if( sortOrder[0] == sortOrder[1] || sortOrder[0] == sortOrder[2] || 
sortOrder[1] == sortOrder[2] ) {
             throw new IllegalArgumentException( "The sort order must contain 
EXACTLY one of each CharType" );
         }
-        this.sortOrder = sortOrder != null ? sortOrder.clone() : null;
+        this.sortOrder = sortOrder.clone();
     }
+
 }


Reply via email to