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"
--- /dev/null
+// 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;
+ }
+
+}
--- /dev/null
+// 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;
+ }
+}
--- /dev/null
+// 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;
+ }
+
+}
--- /dev/null
+// 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
--- /dev/null
+// 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);
+ }
+
+
+}