]> gitweb.fperrin.net Git - DictionaryPC.git/blobdiff - src/com/hughes/android/dictionary/parser/wiktionary/ItFunctionCallbacks.java
Minor automated code simplifications.
[DictionaryPC.git] / src / com / hughes / android / dictionary / parser / wiktionary / ItFunctionCallbacks.java
index 275aa299ec68aed8bbd4e8d1eedb43d70f2aec3b..17ee4beabfe7fef12259426eb9918168b0ebfd79 100644 (file)
 
 package com.hughes.android.dictionary.parser.wiktionary;
 
+import java.util.List;
+import java.util.Map;
+
 import com.hughes.android.dictionary.parser.WikiTokenizer;
 import com.hughes.android.dictionary.parser.wiktionary.AbstractWiktionaryParser.AppendAndIndexWikiCallback;
 import com.hughes.android.dictionary.parser.wiktionary.AbstractWiktionaryParser.NameAndArgs;
 
-import java.util.List;
-import java.util.Map;
-
 class ItFunctionCallbacks {
-  
-  static <T extends AbstractWiktionaryParser> void addGenericCallbacks(Map<String, FunctionCallback<T>> callbacks) {
-      callbacks.put("-hyph-", new Redispatch<T>("\n==== Sillabazione ====\n"));
-      callbacks.put("-pron-", new Redispatch<T>("\n==== Pronuncia ====\n"));
-      callbacks.put("-etim-", new Redispatch<T>("\n==== Etimologia / Derivazione ====\n"));
-      callbacks.put("-syn-", new Redispatch<T>("\n==== Sinonimi ====\n"));
-      callbacks.put("-ant-", new Redispatch<T>("\n==== Antonimi/Contrari ====\n"));
-      callbacks.put("-drv-", new Redispatch<T>("\n==== Parole derivate ====\n"));
-      callbacks.put("-prov-", new Redispatch<T>("\n==== Proverbi e modi di dire ====\n"));
-      callbacks.put("-rel-", new Redispatch<T>("\n==== Termini correlati ====\n"));
-      callbacks.put("-ref-", new Redispatch<T>("\n==== Note / Riferimenti ====\n"));
 
-      callbacks.put("-trans1-", new SkipSection<T>());
-      callbacks.put("-trans2-", new SkipSection<T>());
+    static <T extends AbstractWiktionaryParser> void addGenericCallbacks(
+        Map<String, FunctionCallback<T>> callbacks) {
+        callbacks.put("-hyph-", new Redispatch<>("\n==== Sillabazione ====\n"));
+        callbacks.put("-pron-", new Redispatch<>("\n==== Pronuncia ====\n"));
+        callbacks.put("-etim-", new Redispatch<>("\n==== Etimologia / Derivazione ====\n"));
+        callbacks.put("-syn-", new Redispatch<>("\n==== Sinonimi ====\n"));
+        callbacks.put("-ant-", new Redispatch<>("\n==== Antonimi/Contrari ====\n"));
+        callbacks.put("-drv-", new Redispatch<>("\n==== Parole derivate ====\n"));
+        callbacks.put("-prov-", new Redispatch<>("\n==== Proverbi e modi di dire ====\n"));
+        callbacks.put("-ref-", new Redispatch<>("\n==== Note / Riferimenti ====\n"));
+        callbacks.put("-rel-", new Redispatch<>("\n==== Termini correlati ====\n"));
+        callbacks.put("-var-", new Redispatch<>("\n==== Varianti ====\n"));
 
-  }
+        callbacks.put("-trans1-", new SkipSection<>());
+        callbacks.put("-trans2-", new SkipSection<>());
+        callbacks.put("-ref-", new SkipSection<>());
+    }
 
-  
-  static final NameAndArgs<EnParser> NAME_AND_ARGS = new NameAndArgs<EnParser>();
+    static final NameAndArgs<EnParser> NAME_AND_ARGS = new NameAndArgs<>();
 
-  
-  static final class Redispatch<T extends AbstractWiktionaryParser> implements FunctionCallback<T> {
-    final String newText;
-    public Redispatch(String newText) {
-        this.newText = newText;
-    }
+    static final class Redispatch<T extends AbstractWiktionaryParser> implements
+        FunctionCallback<T> {
+        final String newText;
 
-    @Override
-      public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
-          final Map<String, String> namedArgs,
-          final T parser,
-          final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
-        if (!namedArgs.isEmpty() || args.size() != 0) {
-            return false;
+        public Redispatch(String newText) {
+            this.newText = newText;
         }
-        appendAndIndexWikiCallback.dispatch(newText, null);
-        return true;
-      }
-    }
 
+        @Override
+        public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name,
+                                      final List<String> args,
+                                      final Map<String, String> namedArgs,
+                                      final T parser,
+                                      final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
+            if (!namedArgs.isEmpty() || args.size() != 0) {
+                return false;
+            }
+            appendAndIndexWikiCallback.dispatch(newText, null);
+            return true;
+        }
+    }
 
-  static final class SkipSection<T extends AbstractWiktionaryParser> implements FunctionCallback<T> {
-      public SkipSection() {
-      }
+    static final class SkipSection<T extends AbstractWiktionaryParser> implements
+        FunctionCallback<T> {
+        public SkipSection() {
+        }
 
-      @Override
-        public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name, final List<String> args,
-            final Map<String, String> namedArgs,
-            final T parser,
-            final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
-          while (wikiTokenizer.nextToken() != null) {
-              if (wikiTokenizer.isFunction() && wikiTokenizer.functionName().startsWith("-") && wikiTokenizer.functionName().endsWith("-")) {
-                  wikiTokenizer.returnToLineStart();
-                  return true;
-              }
-          }
-          return true;
+        @Override
+        public boolean onWikiFunction(final WikiTokenizer wikiTokenizer, final String name,
+                                      final List<String> args,
+                                      final Map<String, String> namedArgs,
+                                      final T parser,
+                                      final AppendAndIndexWikiCallback<T> appendAndIndexWikiCallback) {
+            while (wikiTokenizer.nextToken() != null) {
+                if (wikiTokenizer.isFunction()
+                        && wikiTokenizer.functionName().startsWith("-")
+                        && wikiTokenizer.functionName().endsWith("-")
+                        // Hack to prevent infinite-looping, would be better to check that this func was at the start of the line.
+                        && !wikiTokenizer.functionName().contains("trans")) {
+                    wikiTokenizer.returnToLineStart();
+                    return true;
+                }
+            }
+            return true;
         }
-      }
+    }
 
-}
\ No newline at end of file
+}