]> gitweb.fperrin.net Git - DictionaryPC.git/commitdiff
Move several files out of Util.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 20 May 2018 12:41:48 +0000 (14:41 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 20 May 2018 12:52:13 +0000 (14:52 +0200)
compile.sh
src/com/hughes/android/dictionary/engine/EntryTypeName.java [new file with mode: 0644]
src/com/hughes/util/Args.java [new file with mode: 0644]
src/com/hughes/util/EnumUtil.java [new file with mode: 0644]
src/com/hughes/util/FileUtil.java [new file with mode: 0644]
src/com/hughes/util/MapUtil.java [new file with mode: 0644]

index 5129fc957933edd5b265aee405ff0d93bd09c1b0..95f968654846e8ed3808a2dfa8b82ac04ae264f8 100755 (executable)
@@ -31,4 +31,4 @@ if [ ! -r "$COMMONS_COMPRESS" ] ; then
     echo "commons-compress needs to be installed"
     exit 1;
 fi
-javac -g ../Dictionary/Util/src/com/hughes/util/*.java ../Dictionary/Util/src/com/hughes/util/raf/*.java ../Dictionary/src/com/hughes/android/dictionary/DictionaryInfo.java ../Dictionary/src/com/hughes/android/dictionary/engine/*.java ../Dictionary/src/com/hughes/android/dictionary/C.java src/com/hughes/android/dictionary/*.java src/com/hughes/android/dictionary/*/*.java src/com/hughes/android/dictionary/*/*/*.java -classpath "$ICU4J:$JUNIT:$XERCES:$COMMONS:$COMMONS_COMPRESS"
+javac -g ../Dictionary/Util/src/com/hughes/util/*.java ../Dictionary/Util/src/com/hughes/util/raf/*.java ../Dictionary/src/com/hughes/android/dictionary/DictionaryInfo.java ../Dictionary/src/com/hughes/android/dictionary/engine/*.java ../Dictionary/src/com/hughes/android/dictionary/C.java src/com/hughes/util/*.java src/com/hughes/android/dictionary/*.java src/com/hughes/android/dictionary/*/*.java src/com/hughes/android/dictionary/*/*/*.java -classpath "$ICU4J:$JUNIT:$XERCES:$COMMONS:$COMMONS_COMPRESS"
diff --git a/src/com/hughes/android/dictionary/engine/EntryTypeName.java b/src/com/hughes/android/dictionary/engine/EntryTypeName.java
new file mode 100644 (file)
index 0000000..4206265
--- /dev/null
@@ -0,0 +1,84 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.hughes.android.dictionary.engine;
+
+public enum EntryTypeName {
+
+    WIKTIONARY_TITLE_SINGLE_DETAIL(true, true, null),
+    WIKTIONARY_TITLE_SINGLE(true, true, null),
+    WIKTIONARY_INFLECTD_FORM_SINGLE(false, true, null),
+
+    ONE_WORD(true, true, null),
+    MULTIROW_HEAD_ONE_WORD(true, true, null),
+    MULTIROW_TAIL_ONE_WORD(false, true, null),
+
+    SYNONYM_SINGLE(false, true, null),
+    ANTONYM_SINGLE(false, true, null),
+
+    WIKTIONARY_TITLE_MULTI_DETAIL(false, true, WIKTIONARY_TITLE_SINGLE_DETAIL),
+    WIKTIONARY_TITLE_MULTI(false, true, WIKTIONARY_TITLE_SINGLE),
+    WIKTIONARY_TRANSLITERATION(),
+    // How we file "casa {f}, case {pl}" under "case"
+    WIKTIONARY_INFLECTED_FORM_MULTI(false, true, WIKTIONARY_INFLECTD_FORM_SINGLE),
+    WIKTIONARY_ENGLISH_DEF_WIKI_LINK(),
+    WIKTIONARY_ENGLISH_DEF_OTHER_LANG(),
+    WIKTIONARY_ENGLISH_DEF(),
+
+    SYNONYM_MULTI(false, true, SYNONYM_SINGLE),
+    ANTONYM_MULTI(false, true, ANTONYM_SINGLE),
+    DERIVED_TERM(false, true, null),
+
+    TWO_WORDS(),
+    THREE_WORDS(),
+    FOUR_WORDS(),
+    FIVE_OR_MORE_WORDS(),
+    WIKTIONARY_TRANSLATION_WIKI_TEXT(),
+    WIKTIONARY_TRANSLATION_OTHER_TEXT(),
+
+    // How we file entries like: "sono: {form of|essere}" under "sono.".
+    WIKTIONARY_IS_FORM_OF_SOMETHING_ELSE(false, true, null),
+
+    MULTIROW_HEAD_MANY_WORDS(),
+    MULTIROW_TAIL_MANY_WORDS(),
+    WIKTIONARY_EXAMPLE(),
+
+    // The next two are how we file entries like: "sono: {form of|essere}" under
+    // "essere".
+    WIKTIONARY_BASE_FORM_SINGLE(), // These two should be eligible for removal
+    // if the links are otherwise present.
+    WIKTIONARY_BASE_FORM_MULTI(false, false, WIKTIONARY_BASE_FORM_SINGLE),
+    PART_OF_HYPHENATED(),
+    BRACKETED(),
+    PARENTHESIZED(),
+    WIKTIONARY_TRANSLATION_SENSE(),
+    SEE_ALSO(),
+    WIKTIONARY_MENTIONED(false, true, null), ;
+
+    final boolean mainWord;
+    final boolean overridesStopList;
+    final EntryTypeName singleWordInstance;
+
+    EntryTypeName() {
+        this(false, false, null);
+    }
+
+    EntryTypeName(final boolean mainWord, final boolean overridesStopList,
+    final EntryTypeName singleWordInstance) {
+        this.mainWord = mainWord;
+        this.overridesStopList = overridesStopList;
+        this.singleWordInstance = singleWordInstance == null ? this : singleWordInstance;
+    }
+
+}
diff --git a/src/com/hughes/util/Args.java b/src/com/hughes/util/Args.java
new file mode 100644 (file)
index 0000000..6c35dd1
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.hughes.util;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@SuppressWarnings("WeakerAccess")
+public class Args {
+
+    public static Map<String, String> keyValueArgs(final String[] args) {
+        final Map<String,String> dest = new LinkedHashMap<>();
+        for (String arg : args) {
+            int equalsIndex;
+            if (arg.startsWith("--") && (equalsIndex = arg.indexOf("=")) >= 0) {
+                final String key = arg.substring(2, equalsIndex);
+                final String value = arg.substring(equalsIndex + 1, arg.length());
+                dest.put(key, value);
+            }
+        }
+        return dest;
+    }
+}
diff --git a/src/com/hughes/util/EnumUtil.java b/src/com/hughes/util/EnumUtil.java
new file mode 100644 (file)
index 0000000..4cd956b
--- /dev/null
@@ -0,0 +1,31 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.hughes.util;
+
+
+@SuppressWarnings("WeakerAccess")
+public final class EnumUtil {
+
+    public static final <T extends Enum<T>> T min(final T e1, final T e2) {
+        if (e1 == null) {
+            return e2;
+        }
+        if (e2 == null) {
+            return e1;
+        }
+        return e1.compareTo(e2) < 0 ? e1 : e2;
+    }
+
+}
diff --git a/src/com/hughes/util/FileUtil.java b/src/com/hughes/util/FileUtil.java
new file mode 100644 (file)
index 0000000..d3024da
--- /dev/null
@@ -0,0 +1,67 @@
+// Copyright 2011 Google Inc. All Rights Reserved.\r
+//\r
+// Licensed under the Apache License, Version 2.0 (the "License");\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
+//\r
+//     http://www.apache.org/licenses/LICENSE-2.0\r
+//\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
+\r
+package com.hughes.util;\r
+\r
+import java.io.BufferedReader;\r
+import java.io.File;\r
+import java.io.FileInputStream;\r
+import java.io.FileOutputStream;\r
+import java.io.IOException;\r
+import java.io.InputStreamReader;\r
+import java.io.PrintStream;\r
+import java.io.RandomAccessFile;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+@SuppressWarnings("WeakerAccess")\r
+public final class FileUtil {\r
+    public static String readLine(final RandomAccessFile file, final long startPos) throws IOException {\r
+        file.seek(startPos);\r
+        return file.readLine();\r
+    }\r
+\r
+    public static List<String> readLines(final File file) throws IOException {\r
+        final List<String> result = new ArrayList<>();\r
+        try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file)))) {\r
+            String line;\r
+            while ((line = in.readLine()) != null) {\r
+                result.add(line);\r
+            }\r
+        }\r
+        return result;\r
+    }\r
+\r
+    public static String readToString(final File file) throws IOException {\r
+        StringBuilder result = new StringBuilder();\r
+        try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file)))) {\r
+            String line;\r
+            while ((line = in.readLine()) != null) {\r
+                result.append(line).append("\n");\r
+            }\r
+        }\r
+        return result.toString();\r
+    }\r
+\r
+    public static void writeStringToUTF8File(final String string, final File file) {\r
+        throw new IllegalStateException();\r
+    }\r
+\r
+    public static void printString(final File file, final String s) throws IOException {\r
+        final PrintStream out = new PrintStream(new FileOutputStream(file));\r
+        out.print(s);\r
+        out.close();\r
+    }\r
+\r
+}\r
diff --git a/src/com/hughes/util/MapUtil.java b/src/com/hughes/util/MapUtil.java
new file mode 100644 (file)
index 0000000..a62a86e
--- /dev/null
@@ -0,0 +1,55 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.hughes.util;
+
+import java.util.Map;
+
+@SuppressWarnings({"WeakerAccess", "unused"})
+public class MapUtil {
+
+    public static <K,V> V safeGet(final Map<K,V> map, K key, V defaultValue) {
+        if (!map.containsKey(key)) {
+            return defaultValue;
+        }
+        return map.get(key);
+    }
+
+    public static <K,V> V safeGetOrPut(final Map<K,V> map, K key, V defaultValue) {
+        if (!map.containsKey(key)) {
+            map.put(key, defaultValue);
+        }
+        return map.get(key);
+    }
+
+    public static <K,V> V safeGet(final Map<K,V> map, K key, Class<V> valueClass) {
+        if (!map.containsKey(key)) {
+            try {
+                map.put(key, valueClass.newInstance());
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return map.get(key);
+    }
+
+    public static <K,V> V safeRemove(final Map<K,V> map, K key, V defaultValue) {
+        if (!map.containsKey(key)) {
+            return defaultValue;
+        }
+        return map.remove(key);
+    }
+
+
+}