In going through the codebase, I noticed a few areas among the
guessers that seemed a little verbose.  The attached patch cleans them
up a bit.

Also, I'm a bit curious why we still require a source version of Java 1.4.

Best,
-Hyrum
Index: 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java
===================================================================
--- 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java
      (revision 982274)
+++ 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/ArchiveGuesser.java
      (working copy)
@@ -32,10 +32,7 @@ public class ArchiveGuesser {
     };
 
     public static final boolean isArchive(final Document document) {
-        
-        final String name = document.getName();
-        final boolean result = isArchive(name);
-        return result;
+        return isArchive(document.getName());
     }
 
     /**
@@ -44,11 +41,11 @@ public class ArchiveGuesser {
     public static final boolean isArchive(final String name) {
         if (name == null) {return false;}
         String nameToLower = name.toLowerCase(Locale.US);
-        boolean result = false;
-        for (int i = 0; !result && i < 
ArchiveGuesser.ARCHIVE_EXTENSIONS.length; i++) {
-            result = nameToLower.endsWith("." + 
ArchiveGuesser.ARCHIVE_EXTENSIONS[i]);
+        for (int i = 0; i < ArchiveGuesser.ARCHIVE_EXTENSIONS.length; i++) {
+            if (nameToLower.endsWith("." + 
ArchiveGuesser.ARCHIVE_EXTENSIONS[i]))
+               return true;
         }
-        return result;
+        return false;
     }
 
 }
Index: 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java
===================================================================
--- 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java
       (revision 982274)
+++ 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/BinaryGuesser.java
       (working copy)
@@ -62,7 +62,6 @@ public class BinaryGuesser {
      * Do the first few bytes of the stream hint at a binary file?
      */
     public static boolean isBinary(Reader in) {
-        boolean result = false;
         char[] taste = new char[100];
         try {
             int bytesRead = in.read(taste);
@@ -76,13 +75,13 @@ public class BinaryGuesser {
                 }
                 if (highBytes * BinaryGuesser.HIGH_BYTES_RATIO
                     > bytesRead * BinaryGuesser.TOTAL_READ_RATIO) {
-                    result = true;
+                    return true;
                 }
             }
         } catch (IOException e) {
             // SWALLOW 
         }
-        return result;
+        return false;
     }
 
     public static final boolean isBinaryData(final String name) {
@@ -105,20 +104,20 @@ public class BinaryGuesser {
 
     public static boolean containsExtension(final String name,
                                              final String[] exts) {
-        boolean result = false;
-        for (int i = 0; !result && i < exts.length; i++) {
-            result = name.indexOf("." + exts[i] + ".") >= 0;
+        for (int i = 0; i < exts.length; i++) {
+            if (name.indexOf("." + exts[i] + ".") >= 0)
+               return true;
         }
-        return result;
+        return false;
     }
 
     public static boolean extensionMatches(final String name,
                                             final String[] exts) {
-        boolean result = false;
-        for (int i = 0; !result && i < exts.length; i++) {
-            result = name.endsWith("." + exts[i]);
+        for (int i = 0; i < exts.length; i++) {
+            if (name.endsWith("." + exts[i]))
+               return true;
         }
-        return result;
+        return false;
     }
 
     public static boolean isBytecode(final String name) {
@@ -272,14 +271,11 @@ public class BinaryGuesser {
         // TODO: reimplement the binary test algorithm?
         // TODO: more efficient to move into standard analysis
         // TODO: then use binary as default
-        final String name = document.getName();
-        boolean result = isBinary(name);
-        if (!result)
-        {
-            // try a taste
-            result = isBinaryDocument(document);
-        }
-        return result;
+        if (isBinary(document.getName()))
+               return true;
+        
+        // try a taste
+        return isBinaryDocument(document);
     }
 
 
Index: 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java
===================================================================
--- 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java
 (revision 982274)
+++ 
apache-rat-core/src/main/java/org/apache/rat/document/impl/guesser/NoteGuesser.java
 (working copy)
@@ -60,17 +60,19 @@ public class NoteGuesser {
         List l = Arrays.asList(NoteGuesser.NOTE_FILE_NAMES);
         String normalisedName = GuessUtils.normalise(name);
         
-        boolean result = l.contains(name) || l.contains(normalisedName);
-        for (int i = 0; !result && i < 
NoteGuesser.NOTE_FILE_EXTENSIONS.length; i++) {
-            result = normalisedName.endsWith("." + 
NoteGuesser.NOTE_FILE_EXTENSIONS[i]);
+        if (l.contains(name) || l.contains(normalisedName))
+               return true;
+
+        for (int i = 0; i < NoteGuesser.NOTE_FILE_EXTENSIONS.length; i++) {
+            if (normalisedName.endsWith("." + 
NoteGuesser.NOTE_FILE_EXTENSIONS[i]))
+               return true;
         }
-        return result;
+        
+        return false;
     }
 
     public static final boolean isNote(final Document document) {
-        final String name = document.getName();
-        final boolean result = isNote(name);
-        return result;
+       return isNote(document.getName());
     }
 
 }

Reply via email to