From: Reimar Döffinger Date: Wed, 15 Apr 2020 16:04:12 +0000 (+0200) Subject: Minor automated code simplifications. X-Git-Url: http://gitweb.fperrin.net/?p=DictionaryPC.git;a=commitdiff_plain;h=2fc669d88306d563fc9c899d8d91b25d591692ea Minor automated code simplifications. --- diff --git a/src/com/hughes/android/dictionary/CollatorWrapper.java b/src/com/hughes/android/dictionary/CollatorWrapper.java index 2373629..295847d 100644 --- a/src/com/hughes/android/dictionary/CollatorWrapper.java +++ b/src/com/hughes/android/dictionary/CollatorWrapper.java @@ -18,11 +18,11 @@ import java.util.Locale; import com.ibm.icu.text.Collator; -final public class CollatorWrapper { -static public Collator getInstance() { +public final class CollatorWrapper { +public static Collator getInstance() { return Collator.getInstance(); } -static public Collator getInstanceStrengthIdentical(Locale l) { +public static Collator getInstanceStrengthIdentical(Locale l) { Collator c = Collator.getInstance(l); c.setStrength(Collator.IDENTICAL); return c; diff --git a/src/com/hughes/android/dictionary/DictionaryApplication.java b/src/com/hughes/android/dictionary/DictionaryApplication.java index da5e67c..b18c7a0 100644 --- a/src/com/hughes/android/dictionary/DictionaryApplication.java +++ b/src/com/hughes/android/dictionary/DictionaryApplication.java @@ -1,5 +1,5 @@ package com.hughes.android.dictionary; -final public class DictionaryApplication { - final static public boolean USE_COLLATOR = true; +public final class DictionaryApplication { + public static final boolean USE_COLLATOR = true; } diff --git a/src/com/hughes/android/dictionary/FeatureConfig.java b/src/com/hughes/android/dictionary/FeatureConfig.java index 4642e11..291c010 100644 --- a/src/com/hughes/android/dictionary/FeatureConfig.java +++ b/src/com/hughes/android/dictionary/FeatureConfig.java @@ -1,5 +1,5 @@ package com.hughes.android.dictionary; -final public class FeatureConfig { - final static public boolean enableWrite = true; +public final class FeatureConfig { + public static final boolean enableWrite = true; } diff --git a/src/com/hughes/android/dictionary/engine/CheckDictionariesMain.java b/src/com/hughes/android/dictionary/engine/CheckDictionariesMain.java index bac2396..e43f1d0 100644 --- a/src/com/hughes/android/dictionary/engine/CheckDictionariesMain.java +++ b/src/com/hughes/android/dictionary/engine/CheckDictionariesMain.java @@ -26,7 +26,7 @@ public class CheckDictionariesMain { // dictionaryInfoOut.println("# LANG_1\t%LANG_2\tFILENAME\tVERSION_CODE\tFILESIZE\tNUM_MAIN_WORDS_1\tNUM_MAIN_WORDS_2\tNUM_ALL_WORDS_1\tNUM_ALL_WORDS_2"); final File[] files = dictDir.listFiles(); - final List dictNames = new ArrayList(); + final List dictNames = new ArrayList<>(); Arrays.sort(files); for (final File dictFile : files) { if (!dictFile.getName().endsWith("quickdic")) { @@ -63,7 +63,7 @@ public class CheckDictionariesMain { // Find the stats. System.out.println("Stats..."); - final List indexNames = new ArrayList(); + final List indexNames = new ArrayList<>(); for (final IndexInfo indexInfo : dictionaryInfo.indexInfos) { indexNames.add(indexInfo.shortName); } diff --git a/src/com/hughes/android/dictionary/engine/ConvertToV6.java b/src/com/hughes/android/dictionary/engine/ConvertToV6.java index e9b7c8f..05a801b 100644 --- a/src/com/hughes/android/dictionary/engine/ConvertToV6.java +++ b/src/com/hughes/android/dictionary/engine/ConvertToV6.java @@ -18,7 +18,6 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; -import java.nio.channels.FileChannel; public class ConvertToV6 { public static void main(final String[] args) throws IOException { diff --git a/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java b/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java index d105af2..34cc705 100644 --- a/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java +++ b/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java @@ -42,7 +42,7 @@ import com.hughes.util.FileUtil; public class DictionaryBuilder { public final Dictionary dictionary; - public final List indexBuilders = new ArrayList(); + public final List indexBuilders = new ArrayList<>(); public DictionaryBuilder(final String dictInfoString, final Language lang0, final Language lang1, final String normalizerRules1, final String normalizerRules2, final Set lang1Stoplist, final Set lang2Stoplist) { dictionary = new Dictionary(dictInfoString); @@ -61,7 +61,7 @@ public class DictionaryBuilder { } } - public static void main(final String[] args) throws IOException, ParserConfigurationException, SAXException { + public static void main(final String[] args) throws IOException { System.out.println("Running with arguments:"); for (final String arg : args) { System.out.println(arg); @@ -80,8 +80,8 @@ public class DictionaryBuilder { lang2 = null; } - final Set lang1Stoplist = new LinkedHashSet(); - final Set lang2Stoplist = new LinkedHashSet(); + final Set lang1Stoplist = new LinkedHashSet<>(); + final Set lang2Stoplist = new LinkedHashSet<>(); final String lang1StoplistFile = keyValueArgs.remove("lang1Stoplist"); final String lang2StoplistFile = keyValueArgs.remove("lang2Stoplist"); if (lang1StoplistFile != null) { @@ -145,7 +145,7 @@ public class DictionaryBuilder { final int pageLimit = Integer.parseInt(pageLimitString); final EntrySource entrySource = new EntrySource(dictionaryBuilder.dictionary.sources.size(), inputName, 0); - System.out.println(""); + System.out.println(); String inputFormat = keyValueArgs.remove(prefix + "Format"); if ("tab_separated".equals(inputFormat)) { diff --git a/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java b/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java index 75e3a08..8c2ebd0 100644 --- a/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java +++ b/src/com/hughes/android/dictionary/engine/DictionaryBuilderMain.java @@ -36,7 +36,7 @@ public class DictionaryBuilderMain extends TestCase { static final String OUTPUTS = "data/outputs/"; // Build the non EN ones. - static final String[][] nonEnPairs = new String[][] { + static final String[][] nonEnPairs = { {"EN"}, {"DE"}, {"IT"}, @@ -138,7 +138,7 @@ public class DictionaryBuilderMain extends TestCase { - static final Map isoToDedication = new LinkedHashMap(); + static final Map isoToDedication = new LinkedHashMap<>(); static { isoToDedication.put("AF", "Wiktionary-based Afrikaans dictionary dedicated to Heiko and Mariëtte Horn."); isoToDedication.put("HR", "Wiktionary-based Croatian dictionary dedicated to Ines Viskic and Miro Kresonja."); @@ -158,7 +158,7 @@ public class DictionaryBuilderMain extends TestCase { return isoToDedication.containsKey(iso) ? isoToDedication.get(iso) : String.format("Wiktionary-based %s dictionary.", iso); } - static final Map isoToStoplist = new LinkedHashMap(); + static final Map isoToStoplist = new LinkedHashMap<>(); static { isoToStoplist.put("DE", "de.txt"); isoToStoplist.put("EN", "en.txt"); @@ -167,7 +167,7 @@ public class DictionaryBuilderMain extends TestCase { isoToStoplist.put("FR", "fr.txt"); } private static String getStoplist(String iso) { - return isoToStoplist.containsKey(iso) ? isoToStoplist.get(iso) : "empty.txt"; + return isoToStoplist.getOrDefault(iso, "empty.txt"); } static String getOtherLang(final String[] pair, final String first) { @@ -177,7 +177,7 @@ public class DictionaryBuilderMain extends TestCase { } static List getMainArgs(final String[] pair) { - final List result = new ArrayList(); + final List result = new ArrayList<>(); int i = 1; @@ -311,9 +311,7 @@ public class DictionaryBuilderMain extends TestCase { public static void main(final String[] args) throws Exception { - final List allPairs = new ArrayList(); - - allPairs.addAll(Arrays.asList(nonEnPairs)); + final List allPairs = new ArrayList<>(Arrays.asList(nonEnPairs)); // Add all the EN-XX pairs. for (final String isoCode : WiktionaryLangs.isoCodeToEnWikiName.keySet()) { if (!isoCode.equals("EN")) { @@ -322,7 +320,7 @@ public class DictionaryBuilderMain extends TestCase { } - final Set> done = new LinkedHashSet>(); + final Set> done = new LinkedHashSet<>(); boolean go = true; for (final String[] pair : allPairs) { Arrays.sort(pair); @@ -332,11 +330,7 @@ public class DictionaryBuilderMain extends TestCase { } done.add(pairList); - if (pairList.contains("EN") && pairList.contains("DE")) { - go = true; - } else { - go = false; - } + go = pairList.contains("EN") && pairList.contains("DE"); if (!go) { continue; diff --git a/src/com/hughes/android/dictionary/engine/DictionaryBuilderTest.java b/src/com/hughes/android/dictionary/engine/DictionaryBuilderTest.java index 72ad9eb..ee1e664 100644 --- a/src/com/hughes/android/dictionary/engine/DictionaryBuilderTest.java +++ b/src/com/hughes/android/dictionary/engine/DictionaryBuilderTest.java @@ -15,7 +15,6 @@ package com.hughes.android.dictionary.engine; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintStream; import java.io.RandomAccessFile; @@ -347,7 +346,7 @@ public class DictionaryBuilderTest extends TestCase { } private void checkGolden(final String dictName, final File dictFile) - throws IOException, FileNotFoundException { + throws IOException { // Check it once: assertFilesEqual(GOLDENS + dictName + ".text", dictFile.getPath() + ".text"); diff --git a/src/com/hughes/android/dictionary/engine/DictionaryTest.java b/src/com/hughes/android/dictionary/engine/DictionaryTest.java index 8b25f9d..0a9c673 100644 --- a/src/com/hughes/android/dictionary/engine/DictionaryTest.java +++ b/src/com/hughes/android/dictionary/engine/DictionaryTest.java @@ -61,7 +61,7 @@ public class DictionaryTest extends TestCase { assertTrue(rows.toString(), rows.size() > 0); assertTrue(rows.get(0).toString().startsWith("come mai@")); assertTrue(rows.get(0) instanceof TokenRow); - assertTrue(!((TokenRow)rows.get(0)).getIndexEntry().htmlEntries.isEmpty()); + assertFalse(((TokenRow) rows.get(0)).getIndexEntry().htmlEntries.isEmpty()); } { @@ -70,7 +70,7 @@ public class DictionaryTest extends TestCase { assertTrue(rows.toString(), rows.size() > 0); assertTrue(rows.get(0).toString().startsWith("buon giorno@")); assertTrue(rows.get(0) instanceof TokenRow); - assertTrue(!((TokenRow)rows.get(0)).getIndexEntry().htmlEntries.isEmpty()); + assertFalse(((TokenRow) rows.get(0)).getIndexEntry().htmlEntries.isEmpty()); } { @@ -171,7 +171,7 @@ public class DictionaryTest extends TestCase { // Check that search in lowercase works. assertSearchResult("Alibi", "Alibi", deIndex.findInsertionPoint("alib", new AtomicBoolean(false))); - System.out.println(deIndex.findInsertionPoint("alib", new AtomicBoolean(false)).toString()); + System.out.println(deIndex.findInsertionPoint("alib", new AtomicBoolean(false))); raf.close(); } diff --git a/src/com/hughes/android/dictionary/engine/DictionaryV6Writer.java b/src/com/hughes/android/dictionary/engine/DictionaryV6Writer.java index c6049f6..4086407 100644 --- a/src/com/hughes/android/dictionary/engine/DictionaryV6Writer.java +++ b/src/com/hughes/android/dictionary/engine/DictionaryV6Writer.java @@ -26,8 +26,6 @@ import java.util.Collections; import java.util.List; import java.util.zip.GZIPOutputStream; -import com.hughes.android.dictionary.engine.Dictionary; - public class DictionaryV6Writer { private final Dictionary d; @@ -204,7 +202,7 @@ public class DictionaryV6Writer { outb.writeBoolean(hasNormalizedForm); if (hasNormalizedForm) outb.writeUTF(e.normalizedToken()); writev6HtmlIndices(outb, dataPos + outb.size(), - prunedRowIdx == null ? e.htmlEntries : Collections.emptyList()); + prunedRowIdx == null ? e.htmlEntries : Collections.emptyList()); } dataPos += outb.size(); outb.flush(); diff --git a/src/com/hughes/android/dictionary/engine/IndexBuilder.java b/src/com/hughes/android/dictionary/engine/IndexBuilder.java index e7e1b43..680cf4a 100644 --- a/src/com/hughes/android/dictionary/engine/IndexBuilder.java +++ b/src/com/hughes/android/dictionary/engine/IndexBuilder.java @@ -39,12 +39,12 @@ public class IndexBuilder { IndexBuilder(final DictionaryBuilder dictionaryBuilder, final String shortName, final String longName, final Language language, final String normalizerRules, final Set stoplist, final boolean swapPairEntries) { this.dictionaryBuilder = dictionaryBuilder; index = new Index(dictionaryBuilder.dictionary, shortName, longName, language, normalizerRules, swapPairEntries, stoplist); - tokenToData = new TreeMap(index.getSortComparator()); + tokenToData = new TreeMap<>(index.getSortComparator()); this.stoplist = stoplist; } public void build() { - final Set tokenIndexedEntries = new HashSet(); + final Set tokenIndexedEntries = new HashSet<>(); final List rows = index.rows; index.mainTokenCount = 0; for (final TokenData tokenData : tokenToData.values()) { @@ -101,13 +101,8 @@ public class IndexBuilder { } } - final List entriesSortedByNumRows = new ArrayList(index.sortedIndexEntries); - Collections.sort(entriesSortedByNumRows, new Comparator() { - @Override - public int compare(IndexEntry object1, IndexEntry object2) { - return object2.numRows - object1.numRows; - } - }); + final List entriesSortedByNumRows = new ArrayList<>(index.sortedIndexEntries); + entriesSortedByNumRows.sort((object1, object2) -> object2.numRows - object1.numRows); System.out.println("Most common tokens:"); for (int i = 0; i < 50 && i < entriesSortedByNumRows.size(); ++i) { System.out.println(" " + entriesSortedByNumRows.get(i)); @@ -117,10 +112,10 @@ public class IndexBuilder { public static class TokenData { final String token; - final Map> typeToEntries = new EnumMap>(EntryTypeName.class); + final Map> typeToEntries = new EnumMap<>(EntryTypeName.class); public boolean hasMainEntry = false; - public List htmlEntries = new ArrayList(); + public final List htmlEntries = new ArrayList<>(); TokenData(final String token) { assert token.equals(token.trim()); @@ -145,7 +140,7 @@ public class IndexBuilder { tokenData.hasMainEntry = true; } if (entries == null) { - entries = new ArrayList(); + entries = new ArrayList<>(); tokenData.typeToEntries.put(entryTypeName, entries); } return entries; diff --git a/src/com/hughes/android/dictionary/engine/LanguageTest.java b/src/com/hughes/android/dictionary/engine/LanguageTest.java index 1a884a4..be787eb 100644 --- a/src/com/hughes/android/dictionary/engine/LanguageTest.java +++ b/src/com/hughes/android/dictionary/engine/LanguageTest.java @@ -73,10 +73,10 @@ public class LanguageTest extends TestCase { assertEquals("hulle", normalizer.transform("Hulle")); - final List sorted = new ArrayList(words); + final List sorted = new ArrayList<>(words); // Collections.shuffle(shuffled, new Random(0)); - Collections.sort(sorted, comparator); - System.out.println(sorted.toString()); + sorted.sort(comparator); + System.out.println(sorted); for (int i = 0; i < words.size(); ++i) { System.out.println(words.get(i) + "\t" + sorted.get(i)); assertEquals(words.get(i), sorted.get(i)); @@ -92,9 +92,9 @@ public class LanguageTest extends TestCase { "preppy", "preprocess"); - final List sorted = new ArrayList(words); + final List sorted = new ArrayList<>(words); final NormalizeComparator comparator = new NormalizeComparator(normalizer, Language.en.getCollator(), 7); - Collections.sort(sorted, comparator); + sorted.sort(comparator); for (int i = 0; i < words.size(); ++i) { if (i > 0) { assertTrue(comparator.compare(words.get(i-1), words.get(i)) < 0); @@ -183,8 +183,8 @@ public class LanguageTest extends TestCase { public void testEnWiktionaryNames() { - final Set enLangs = new LinkedHashSet(WiktionaryLangs.isoCodeToEnWikiName.keySet()); - final List names = new ArrayList(); + final Set enLangs = new LinkedHashSet<>(WiktionaryLangs.isoCodeToEnWikiName.keySet()); + final List names = new ArrayList<>(); for (final String code : WiktionaryLangs.isoCodeToEnWikiName.keySet()) { names.add(WiktionaryLangs.isoCodeToEnWikiName.get(code)); enLangs.add(code.toLowerCase()); diff --git a/src/com/hughes/android/dictionary/engine/ReadAheadBuffer.java b/src/com/hughes/android/dictionary/engine/ReadAheadBuffer.java index 3c4c10d..b38ee2b 100644 --- a/src/com/hughes/android/dictionary/engine/ReadAheadBuffer.java +++ b/src/com/hughes/android/dictionary/engine/ReadAheadBuffer.java @@ -27,21 +27,19 @@ public class ReadAheadBuffer extends PipedInputStream { try { pipe = new PipedOutputStream(this); } catch (IOException e) {} - new Thread(new Runnable() { - public void run() { - try { - int read; - final byte buffer[] = new byte[BLOCK_SIZE]; - while ((read = in.read(buffer)) > 0) - { - pipe.write(buffer, 0, read); - pipe.flush(); - } - } catch (IOException e) {} - try { - pipe.close(); - } catch (IOException e) {} - } + new Thread(() -> { + try { + int read; + final byte[] buffer = new byte[BLOCK_SIZE]; + while ((read = in.read(buffer)) > 0) + { + pipe.write(buffer, 0, read); + pipe.flush(); + } + } catch (IOException e) {} + try { + pipe.close(); + } catch (IOException e) {} }).start(); } diff --git a/src/com/hughes/android/dictionary/engine/WiktionarySplitter.java b/src/com/hughes/android/dictionary/engine/WiktionarySplitter.java index ed17fb5..b148ebb 100644 --- a/src/com/hughes/android/dictionary/engine/WiktionarySplitter.java +++ b/src/com/hughes/android/dictionary/engine/WiktionarySplitter.java @@ -23,6 +23,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -49,7 +50,7 @@ public class WiktionarySplitter extends org.xml.sax.helpers.DefaultHandler { static final Matcher headingStart = Pattern.compile("^(=+)[^=].*$", Pattern.MULTILINE).matcher(""); static final Matcher startSpanish = Pattern.compile("\\{\\{ES(\\|[^{}=]*)?}}").matcher(""); - final Map> pathToSelectors = new LinkedHashMap>(); + final Map> pathToSelectors = new LinkedHashMap<>(); List currentSelectors = null; StringBuilder titleBuilder; @@ -65,7 +66,7 @@ public class WiktionarySplitter extends org.xml.sax.helpers.DefaultHandler { List selectors; for (final String code : WiktionaryLangs.wikiCodeToIsoCodeToWikiName.keySet()) { //if (!code.equals("fr")) {continue;} - selectors = new ArrayList(); + selectors = new ArrayList<>(); pathToSelectors.put(String.format("data/inputs/%swiktionary-pages-articles.xml", code), selectors); for (final Map.Entry entry : WiktionaryLangs.wikiCodeToIsoCodeToWikiName.get(code).entrySet()) { final String dir = String.format("data/inputs/wikiSplit/%s", code); @@ -106,7 +107,7 @@ public class WiktionarySplitter extends org.xml.sax.helpers.DefaultHandler { parser.parse(new BufferedInputStream(in), this); } } catch (Exception e) { - System.err.println("Exception during parse, lastPageTitle=" + lastPageTitle + ", titleBuilder=" + titleBuilder.toString() + " of file " + pathToSelectorsEntry.getKey()); + System.err.println("Exception during parse, lastPageTitle=" + lastPageTitle + ", titleBuilder=" + titleBuilder + " of file " + pathToSelectorsEntry.getKey()); throw e; } @@ -120,7 +121,7 @@ public class WiktionarySplitter extends org.xml.sax.helpers.DefaultHandler { String lastPageTitle = null; int pageCount = 0; - Matcher endPatterns[] = new Matcher[100]; + final Matcher[] endPatterns = new Matcher[100]; private Matcher getEndPattern(int depth) { if (endPatterns[depth] == null) @@ -231,7 +232,7 @@ public class WiktionarySplitter extends org.xml.sax.helpers.DefaultHandler { // For Translingual entries just store the text for later // use in the per-language sections - if (heading.indexOf("Translingual") != -1) { + if (heading.contains("Translingual")) { // Find end. final int depth = headingStart.group(1).length(); final Matcher endMatcher = getEndPattern(depth).reset(text); @@ -266,13 +267,13 @@ public class WiktionarySplitter extends org.xml.sax.helpers.DefaultHandler { sectionText.charAt(dummy_end + 1) == '\n') ++dummy_end; sectionText = sectionText.substring(dummy_end); } - if (heading.indexOf("Japanese") == -1) sectionText += translingual; + if (!heading.contains("Japanese")) sectionText += translingual; final Section section = new Section(title, heading, sectionText); try { selector.out.writeUTF(section.title); selector.out.writeUTF(section.heading); - final byte[] bytes = section.text.getBytes("UTF8"); + final byte[] bytes = section.text.getBytes(StandardCharsets.UTF_8); selector.out.writeInt(bytes.length); selector.out.write(bytes); } catch (IOException e) { @@ -336,15 +337,14 @@ public class WiktionarySplitter extends org.xml.sax.helpers.DefaultHandler { } @Override - public void characters(char[] ch, int start, int length) throws SAXException { + public void characters(char[] ch, int start, int length) { if (currentBuilder != null) { currentBuilder.append(ch, start, length); } } @Override - public void endElement(String uri, String localName, String qName) - throws SAXException { + public void endElement(String uri, String localName, String qName) { currentBuilder = null; if ("page".equals(qName)) { endPage(); diff --git a/src/com/hughes/android/dictionary/engine/WriteBuffer.java b/src/com/hughes/android/dictionary/engine/WriteBuffer.java index a8a92ee..1ddd42f 100644 --- a/src/com/hughes/android/dictionary/engine/WriteBuffer.java +++ b/src/com/hughes/android/dictionary/engine/WriteBuffer.java @@ -27,22 +27,20 @@ public class WriteBuffer extends PipedOutputStream { try { pipe = new PipedInputStream(this, size); buffer = new byte[BLOCK_SIZE]; - writeThread = new Thread(new Runnable() { - public void run() { - int read; - try { - while ((read = pipe.read(buffer)) > 0) - { - out.write(buffer, 0, read); - out.flush(); - } - } catch (IOException e) { - System.out.println("Error writing to file " + e); + writeThread = new Thread(() -> { + int read; + try { + while ((read = pipe.read(buffer)) > 0) + { + out.write(buffer, 0, read); + out.flush(); } - try { - out.close(); - } catch (IOException e) {} + } catch (IOException e) { + System.out.println("Error writing to file " + e); } + try { + out.close(); + } catch (IOException e) {} }); writeThread.start(); } catch (IOException e) {} @@ -61,5 +59,5 @@ public class WriteBuffer extends PipedOutputStream { Thread writeThread; OutputStream out; PipedInputStream pipe; - byte buffer[]; + byte[] buffer; } diff --git a/src/com/hughes/android/dictionary/parser/DictFileParser.java b/src/com/hughes/android/dictionary/parser/DictFileParser.java index 6d8c561..e9c6180 100644 --- a/src/com/hughes/android/dictionary/parser/DictFileParser.java +++ b/src/com/hughes/android/dictionary/parser/DictFileParser.java @@ -293,9 +293,9 @@ public class DictFileParser implements Parser { return field; } - public static final Set tokenize(final String text, final Pattern pattern) { + public static Set tokenize(final String text, final Pattern pattern) { final String[] split = pattern.split(text); - final Set result = new LinkedHashSet(Arrays.asList(split)); + final Set result = new LinkedHashSet<>(Arrays.asList(split)); result.remove(""); return result; } diff --git a/src/com/hughes/android/dictionary/parser/WikiTokenizer.java b/src/com/hughes/android/dictionary/parser/WikiTokenizer.java index f8d212f..56bda7f 100644 --- a/src/com/hughes/android/dictionary/parser/WikiTokenizer.java +++ b/src/com/hughes/android/dictionary/parser/WikiTokenizer.java @@ -14,16 +14,13 @@ package com.hughes.android.dictionary.parser; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public final class WikiTokenizer { - public static interface Callback { + public interface Callback { void onPlainText(final String text); void onMarkup(WikiTokenizer wikiTokenizer); void onWikiLink(WikiTokenizer wikiTokenizer); @@ -99,8 +96,8 @@ public final class WikiTokenizer { int end = 0; int start = -1; - final List errors = new ArrayList(); - final List tokenStack = new ArrayList(); + final List errors = new ArrayList<>(); + final List tokenStack = new ArrayList<>(); private String headingWikiText; @@ -116,8 +113,8 @@ public final class WikiTokenizer { private int lastUnescapedPipePos; private int lastUnescapedEqualsPos; - private final List positionArgs = new ArrayList(); - private final Map namedArgs = new LinkedHashMap(); + private final List positionArgs = new ArrayList<>(); + private final Map namedArgs = new LinkedHashMap<>(); public WikiTokenizer(final String wikiText) { @@ -474,7 +471,7 @@ public final class WikiTokenizer { return token; } - final static String[] patterns = { "\n", "{{", "}}", "[[", "]]", "[", "]", "|", "=", "