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());
}
}