From d962feb36631f1b1b0c0c7c13b1bf8da00bbd88b Mon Sep 17 00:00:00 2001 From: Martin Wiesner Date: Thu, 19 Dec 2024 20:24:39 +0100 Subject: [PATCH] OPENNLP-1674 Make use of enhanced switch expression introduced in Java 14 --- .../formats/Conll02NameSampleStream.java | 23 ++++++------------ .../formats/EvalitaNameSampleStream.java | 23 ++++++------------ .../ConlluLemmaSampleStreamFactory.java | 17 ++++--------- .../conllu/ConlluPOSSampleStreamFactory.java | 17 ++++--------- .../tools/formats/conllu/ConlluWordLine.java | 13 ++++------ .../tools/ml/model/DataIndexerFactory.java | 24 ++++++------------- .../opennlp/tools/stemmer/PorterStemmer.java | 17 ++++--------- .../tokenize/lang/en/TokenSampleStream.java | 21 ++++++---------- 8 files changed, 48 insertions(+), 107 deletions(-) diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/Conll02NameSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/Conll02NameSampleStream.java index ef6de3b9ca..7feac5b403 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/formats/Conll02NameSampleStream.java +++ b/opennlp-tools/src/main/java/opennlp/tools/formats/Conll02NameSampleStream.java @@ -111,22 +111,13 @@ static Span extract(int begin, int end, String beginTag) throws InvalidFormatExc String type = beginTag.substring(2); - switch (type) { - case "PER": - type = "person"; - break; - case "LOC": - type = "location"; - break; - case "MISC": - type = "misc"; - break; - case "ORG": - type = "organization"; - break; - default: - throw new InvalidFormatException("Unknown type: " + type); - } + type = switch (type) { + case "PER" -> "person"; + case "LOC" -> "location"; + case "MISC" -> "misc"; + case "ORG" -> "organization"; + default -> throw new InvalidFormatException("Unknown type: " + type); + }; return new Span(begin, end, type); } diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/EvalitaNameSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/EvalitaNameSampleStream.java index 52b7f5496d..76574500ed 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/formats/EvalitaNameSampleStream.java +++ b/opennlp-tools/src/main/java/opennlp/tools/formats/EvalitaNameSampleStream.java @@ -89,22 +89,13 @@ private static Span extract(int begin, int end, String beginTag) throws InvalidF String type = beginTag.substring(2); - switch (type) { - case "PER": - type = "person"; - break; - case "LOC": - type = "location"; - break; - case "GPE": - type = "gpe"; - break; - case "ORG": - type = "organization"; - break; - default: - throw new InvalidFormatException("Unknown type: " + type); - } + type = switch (type) { + case "PER" -> "person"; + case "LOC" -> "location"; + case "GPE" -> "gpe"; + case "ORG" -> "organization"; + default -> throw new InvalidFormatException("Unknown type: " + type); + }; return new Span(begin, end, type); } diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluLemmaSampleStreamFactory.java b/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluLemmaSampleStreamFactory.java index 452ae15c65..c7b1f77bf8 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluLemmaSampleStreamFactory.java +++ b/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluLemmaSampleStreamFactory.java @@ -56,18 +56,11 @@ protected ConlluLemmaSampleStreamFactory(Class

params) { public ObjectStream create(String[] args) { Parameters params = ArgumentParser.parse(args, Parameters.class); - ConlluTagset tagset; - - switch (params.getTagset()) { - case "u": - tagset = ConlluTagset.U; - break; - case "x": - tagset = ConlluTagset.X; - break; - default: - throw new TerminateToolException(-1, "Unknown tagset parameter: " + params.getTagset()); - } + ConlluTagset tagset = switch (params.getTagset()) { + case "u" -> ConlluTagset.U; + case "x" -> ConlluTagset.X; + default -> throw new TerminateToolException(-1, "Unknown tagset parameter: " + params.getTagset()); + }; InputStreamFactory inFactory = CmdLineUtil.createInputStreamFactory(params.getData()); diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluPOSSampleStreamFactory.java b/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluPOSSampleStreamFactory.java index 76a3277c34..6601dbb64d 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluPOSSampleStreamFactory.java +++ b/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluPOSSampleStreamFactory.java @@ -57,18 +57,11 @@ protected ConlluPOSSampleStreamFactory(Class

params) { public ObjectStream create(String[] args) { Parameters params = ArgumentParser.parse(args, Parameters.class); - ConlluTagset tagset; - - switch (params.getTagset()) { - case "u": - tagset = ConlluTagset.U; - break; - case "x": - tagset = ConlluTagset.X; - break; - default: - throw new TerminateToolException(-1, "Unknown tagset parameter: " + params.getTagset()); - } + ConlluTagset tagset = switch (params.getTagset()) { + case "u" -> ConlluTagset.U; + case "x" -> ConlluTagset.X; + default -> throw new TerminateToolException(-1, "Unknown tagset parameter: " + params.getTagset()); + }; InputStreamFactory inFactory = CmdLineUtil.createInputStreamFactory(params.getData()); diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluWordLine.java b/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluWordLine.java index 0e3129f381..900d637e64 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluWordLine.java +++ b/opennlp-tools/src/main/java/opennlp/tools/formats/conllu/ConlluWordLine.java @@ -97,14 +97,11 @@ public String getLemma() { * @throws IllegalStateException Thrown if a non-supported {@link ConlluTagset} was specified. */ public String getPosTag(ConlluTagset tagset) { - switch (tagset) { - case U: - return uPosTag; - case X: - return xPosTag; - default: - throw new IllegalStateException("Unexpected tagset value: " + tagset); - } + return switch (tagset) { + case U -> uPosTag; + case X -> xPosTag; + default -> throw new IllegalStateException("Unexpected tagset value: " + tagset); + }; } /** diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/DataIndexerFactory.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/DataIndexerFactory.java index d14b2f2a9e..1e491148cd 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/DataIndexerFactory.java +++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/DataIndexerFactory.java @@ -53,24 +53,14 @@ public static DataIndexer getDataIndexer(TrainingParameters parameters, Map(); } - DataIndexer indexer; - switch (indexerParam) { - case AbstractEventTrainer.DATA_INDEXER_ONE_PASS_VALUE: - indexer = new OnePassDataIndexer(); - break; - - case AbstractEventTrainer.DATA_INDEXER_TWO_PASS_VALUE: - indexer = new TwoPassDataIndexer(); - break; - - case AbstractEventTrainer.DATA_INDEXER_ONE_PASS_REAL_VALUE: - indexer = new OnePassRealValueDataIndexer(); - break; - - default: + DataIndexer indexer = switch (indexerParam) { + case AbstractEventTrainer.DATA_INDEXER_ONE_PASS_VALUE -> new OnePassDataIndexer(); + case AbstractEventTrainer.DATA_INDEXER_TWO_PASS_VALUE -> new TwoPassDataIndexer(); + case AbstractEventTrainer.DATA_INDEXER_ONE_PASS_REAL_VALUE -> new OnePassRealValueDataIndexer(); + default -> // if the user passes in a class name for the indexer, try to instantiate the class. - indexer = ExtensionLoader.instantiateExtension(DataIndexer.class, indexerParam); - } + ExtensionLoader.instantiateExtension(DataIndexer.class, indexerParam); + }; indexer.init(parameters, reportMap); diff --git a/opennlp-tools/src/main/java/opennlp/tools/stemmer/PorterStemmer.java b/opennlp-tools/src/main/java/opennlp/tools/stemmer/PorterStemmer.java index f57e31270a..623a2d3d2c 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/stemmer/PorterStemmer.java +++ b/opennlp-tools/src/main/java/opennlp/tools/stemmer/PorterStemmer.java @@ -119,18 +119,11 @@ public char[] getResultBuffer() { /* cons(i) is true <=> b[i] is a consonant. */ private boolean cons(int i) { - switch (b[i]) { - case 'a': - case 'e': - case 'i': - case 'o': - case 'u': - return false; - case 'y': - return (i == k0) || !cons(i - 1); - default: - return true; - } + return switch (b[i]) { + case 'a', 'e', 'i', 'o', 'u' -> false; + case 'y' -> (i == k0) || !cons(i - 1); + default -> true; + }; } /* m() measures the number of consonant sequences between k0 and j. if c is diff --git a/opennlp-tools/src/main/java/opennlp/tools/tokenize/lang/en/TokenSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/tokenize/lang/en/TokenSampleStream.java index e723215af2..951fca5b5d 100644 --- a/opennlp-tools/src/main/java/opennlp/tools/tokenize/lang/en/TokenSampleStream.java +++ b/opennlp-tools/src/main/java/opennlp/tools/tokenize/lang/en/TokenSampleStream.java @@ -65,20 +65,13 @@ public TokenSample next() { for (int ti = 0; ti < tokens.length; ti++) { String token = tokens[ti]; String lastToken = ti - 1 >= 0 ? tokens[ti - 1] : ""; - switch (token) { - case "-LRB-": - token = "("; - break; - case "-LCB-": - token = "{"; - break; - case "-RRB-": - token = ")"; - break; - case "-RCB-": - token = "}"; - break; - } + token = switch (token) { + case "-LRB-" -> "("; + case "-LCB-" -> "{"; + case "-RRB-" -> ")"; + case "-RCB-" -> "}"; + default -> token; + }; if (sb.length() != 0) { if (!alphaNumeric.matcher(token).find() || token.startsWith("'") || token.equalsIgnoreCase("n't")) { if ((token.equals("``") || token.equals("--") || token.equals("$") ||