summaryrefslogtreecommitdiff
path: root/javase/src/main/java
diff options
context:
space:
mode:
authorSean Owen <srowen@gmail.com>2014-01-29 17:35:22 +0400
committerSean Owen <srowen@gmail.com>2014-01-29 17:35:22 +0400
commit1fa7fa9d98ec9530c96d5a291cedc457183ba4df (patch)
tree144f9e9d94b908723db244da78b746309d418993 /javase/src/main/java
parentc42131e86660def8b8ccd1cd6bcce421a8d62b40 (diff)
downloadzxing-1fa7fa9d98ec9530c96d5a291cedc457183ba4df.tar.xz
Avoid auto translation of langauges that are just symlinks. Use Java 7 file APIs more.
Diffstat (limited to 'javase/src/main/java')
-rw-r--r--javase/src/main/java/com/google/zxing/HtmlAssetTranslator.java9
-rw-r--r--javase/src/main/java/com/google/zxing/StringsResourceTranslator.java21
2 files changed, 19 insertions, 11 deletions
diff --git a/javase/src/main/java/com/google/zxing/HtmlAssetTranslator.java b/javase/src/main/java/com/google/zxing/HtmlAssetTranslator.java
index 1912233e8..0661134a4 100644
--- a/javase/src/main/java/com/google/zxing/HtmlAssetTranslator.java
+++ b/javase/src/main/java/com/google/zxing/HtmlAssetTranslator.java
@@ -33,6 +33,8 @@ import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -86,7 +88,12 @@ public final class HtmlAssetTranslator {
FileFilter fileFilter = new FileFilter() {
@Override
public boolean accept(File file) {
- return file.isDirectory() && file.getName().startsWith("html-") && !"html-en".equals(file.getName());
+ Path path = file.toPath();
+ return
+ Files.isDirectory(path) &&
+ !Files.isSymbolicLink(path) &&
+ file.getName().startsWith("html-") &&
+ !"html-en".equals(file.getName());
}
};
for (File languageDir : assetsDir.listFiles(fileFilter)) {
diff --git a/javase/src/main/java/com/google/zxing/StringsResourceTranslator.java b/javase/src/main/java/com/google/zxing/StringsResourceTranslator.java
index 67f1b1361..2626d85c8 100644
--- a/javase/src/main/java/com/google/zxing/StringsResourceTranslator.java
+++ b/javase/src/main/java/com/google/zxing/StringsResourceTranslator.java
@@ -17,20 +17,18 @@
package com.google.zxing;
import java.io.BufferedReader;
-import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
@@ -56,7 +54,6 @@ public final class StringsResourceTranslator {
private static final String API_KEY = System.getProperty("translateAPI.key");
- private static final Charset UTF8 = Charset.forName("UTF-8");
private static final Pattern ENTRY_PATTERN = Pattern.compile("<string name=\"([^\"]+)\".*>([^<]+)</string>");
private static final Pattern STRINGS_FILE_NAME_PATTERN = Pattern.compile("values-(.+)");
private static final Pattern TRANSLATE_RESPONSE_PATTERN = Pattern.compile("translatedText\":\\s*\"([^\"]+)\"");
@@ -97,7 +94,11 @@ public final class StringsResourceTranslator {
File[] translatedValuesDirs = resDir.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
- return file.isDirectory() && VALUES_DIR_PATTERN.matcher(file.getName()).matches();
+ Path path = file.toPath();
+ return
+ Files.isDirectory(path) &&
+ !Files.isSymbolicLink(path) &&
+ VALUES_DIR_PATTERN.matcher(file.getName()).matches();
}
});
for (File translatedValuesDir : translatedValuesDirs) {
@@ -129,7 +130,7 @@ public final class StringsResourceTranslator {
resultTempFile.deleteOnExit();
boolean anyChange = false;
- try (Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(resultTempFile), UTF8))) {
+ try (Writer out = Files.newBufferedWriter(resultTempFile.toPath(), StandardCharsets.UTF_8)) {
out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
out.write(APACHE_2_LICENSE);
out.write("<resources>\n");
@@ -210,7 +211,7 @@ public final class StringsResourceTranslator {
URLConnection connection = translateURL.openConnection();
connection.connect();
StringBuilder translateResult = new StringBuilder(200);
- try (Reader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), UTF8))) {
+ try (Reader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
char[] buffer = new char[1024];
int charsRead;
while ((charsRead = in.read(buffer)) > 0) {
@@ -225,7 +226,7 @@ public final class StringsResourceTranslator {
if (!file.exists()) {
return entries;
}
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), UTF8))) {
+ try (BufferedReader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) {
CharSequence line;
while ((line = reader.readLine()) != null) {
Matcher m = ENTRY_PATTERN.matcher(line);