You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by jo...@apache.org on 2016/12/20 10:14:18 UTC

[2/3] opennlp git commit: OPENNLP-871: Cleanup code base for release

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
index 2c31345..380350e 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentCategorizerME.java
@@ -17,7 +17,6 @@
 package opennlp.tools.doccat;
 
 import java.io.IOException;
-import java.io.ObjectStreamException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -25,7 +24,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
-
 import opennlp.tools.ml.EventTrainer;
 import opennlp.tools.ml.TrainerFactory;
 import opennlp.tools.ml.model.MaxentModel;
@@ -33,7 +31,6 @@ import opennlp.tools.tokenize.SimpleTokenizer;
 import opennlp.tools.tokenize.Tokenizer;
 import opennlp.tools.util.ObjectStream;
 import opennlp.tools.util.TrainingParameters;
-import opennlp.tools.util.model.ModelUtil;
 
 /**
  * Maxent implementation of {@link DocumentCategorizer}.
@@ -119,7 +116,7 @@ public class DocumentCategorizerME implements DocumentCategorizer {
    * @return the score map
    */
   public Map<String, Double> scoreMap(String text) {
-    Map<String, Double> probDist = new HashMap<String, Double>();
+    Map<String, Double> probDist = new HashMap<>();
 
     double[] categorize = categorize(text);
     int catSize = getNumberOfCategories();
@@ -139,7 +136,7 @@ public class DocumentCategorizerME implements DocumentCategorizer {
    * @return the sorted score map
    */
   public SortedMap<Double, Set<String>> sortedScoreMap(String text) {
-    SortedMap<Double, Set<String>> descendingMap = new TreeMap<Double, Set<String>>();
+    SortedMap<Double, Set<String>> descendingMap = new TreeMap<>();
     double[] categorize = categorize(text);
     int catSize = getNumberOfCategories();
     for (int i = 0; i < catSize; i++) {
@@ -180,7 +177,7 @@ public class DocumentCategorizerME implements DocumentCategorizer {
                                   TrainingParameters mlParams, DoccatFactory factory)
       throws IOException {
 
-    Map<String, String> manifestInfoEntries = new HashMap<String, String>();
+    Map<String, String> manifestInfoEntries = new HashMap<>();
 
     EventTrainer trainer = TrainerFactory.getEventTrainer(
          mlParams.getSettings(), manifestInfoEntries);

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java
index c6c1852..47828ab 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/doccat/DocumentSample.java
@@ -50,7 +50,7 @@ public class DocumentSample {
     }
 
     this.category = category;
-    this.text = Collections.unmodifiableList(new ArrayList<String>(Arrays.asList(text)));
+    this.text = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(text)));
 
     if(extraInformation == null) {
       this.extraInformation = Collections.emptyMap();

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/doccat/NGramFeatureGenerator.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/doccat/NGramFeatureGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/doccat/NGramFeatureGenerator.java
index 49e1736..ef5d2a3 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/doccat/NGramFeatureGenerator.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/doccat/NGramFeatureGenerator.java
@@ -69,7 +69,7 @@ public class NGramFeatureGenerator implements FeatureGenerator {
    */
   public Collection<String> extractFeatures(String[] text, Map<String, Object> extraInfo) {
 
-    List<String> features = new ArrayList<String>();
+    List<String> features = new ArrayList<>();
 
     for (int i = 0; i <= text.length - minGram; i++) {
       String feature = "ng=";

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/entitylinker/BaseLink.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/entitylinker/BaseLink.java b/opennlp-tools/src/main/java/opennlp/tools/entitylinker/BaseLink.java
index 089d9b7..6e06beb 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/entitylinker/BaseLink.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/entitylinker/BaseLink.java
@@ -29,7 +29,7 @@ public abstract class BaseLink {
   private String itemID;
   private String itemName;
   private String itemType;
-  private HashMap<String, Double> scoreMap = new HashMap<String, Double>();
+  private HashMap<String, Double> scoreMap = new HashMap<>();
 
   public BaseLink() {
   }
@@ -150,12 +150,6 @@ public abstract class BaseLink {
     if (!Objects.equals(this.itemID, other.itemID)) {
       return false;
     }
-    if (!Objects.equals(this.itemName, other.itemName)) {
-      return false;
-    }
-    if (!Objects.equals(this.itemType, other.itemType)) {
-      return false;
-    }
-    return true;
+    return Objects.equals(this.itemName, other.itemName) && Objects.equals(this.itemType, other.itemType);
   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/entitylinker/LinkedSpan.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/entitylinker/LinkedSpan.java b/opennlp-tools/src/main/java/opennlp/tools/entitylinker/LinkedSpan.java
index ff4757f..c44aec8 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/entitylinker/LinkedSpan.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/entitylinker/LinkedSpan.java
@@ -136,12 +136,6 @@ public class LinkedSpan<T extends BaseLink> extends Span {
     if (!Objects.equals(this.linkedEntries, other.linkedEntries)) {
       return false;
     }
-    if (this.sentenceid != other.sentenceid) {
-      return false;
-    }
-    if (!Objects.equals(this.searchTerm, other.searchTerm)) {
-      return false;
-    }
-    return true;
+    return this.sentenceid == other.sentenceid && Objects.equals(this.searchTerm, other.searchTerm);
   }
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/BioNLP2004NameSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/BioNLP2004NameSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/BioNLP2004NameSampleStream.java
index 1d8d4e9..6825d80 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/BioNLP2004NameSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/BioNLP2004NameSampleStream.java
@@ -82,8 +82,8 @@ public class BioNLP2004NameSampleStream implements ObjectStream<NameSample> {
 
   public NameSample read() throws IOException {
 
-    List<String> sentence = new ArrayList<String>();
-    List<String> tags = new ArrayList<String>();
+    List<String> sentence = new ArrayList<>();
+    List<String> tags = new ArrayList<>();
 
     boolean isClearAdaptiveData = false;
 
@@ -116,7 +116,7 @@ public class BioNLP2004NameSampleStream implements ObjectStream<NameSample> {
     if (sentence.size() > 0) {
 
       // convert name tags into spans
-      List<Span> names = new ArrayList<Span>();
+      List<Span> names = new ArrayList<>();
 
       int beginIndex = -1;
       int endIndex = -1;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/Conll02NameSampleStream.java
----------------------------------------------------------------------
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 8d2df4b..7cd3810 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/Conll02NameSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/Conll02NameSampleStream.java
@@ -102,7 +102,7 @@ public class Conll02NameSampleStream implements ObjectStream<NameSample>{
     this.types = types;
   }
 
-  static final Span extract(int begin, int end, String beginTag) throws InvalidFormatException {
+  static Span extract(int begin, int end, String beginTag) throws InvalidFormatException {
 
     String type = beginTag.substring(2);
 
@@ -128,8 +128,8 @@ public class Conll02NameSampleStream implements ObjectStream<NameSample>{
 
   public NameSample read() throws IOException {
 
-    List<String> sentence = new ArrayList<String>();
-    List<String> tags = new ArrayList<String>();
+    List<String> sentence = new ArrayList<>();
+    List<String> tags = new ArrayList<>();
 
     boolean isClearAdaptiveData = false;
 
@@ -162,7 +162,7 @@ public class Conll02NameSampleStream implements ObjectStream<NameSample>{
     if (sentence.size() > 0) {
 
       // convert name tags into spans
-      List<Span> names = new ArrayList<Span>();
+      List<Span> names = new ArrayList<>();
 
       int beginIndex = -1;
       int endIndex = -1;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/Conll03NameSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/Conll03NameSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/Conll03NameSampleStream.java
index 78c0ee8..07b62e8 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/Conll03NameSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/Conll03NameSampleStream.java
@@ -15,15 +15,12 @@
 
 package opennlp.tools.formats;
 
-import static opennlp.tools.formats.Conll02NameSampleStream.extract;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.List;
-
 import opennlp.tools.namefind.NameSample;
 import opennlp.tools.util.InputStreamFactory;
 import opennlp.tools.util.ObjectStream;
@@ -31,6 +28,8 @@ import opennlp.tools.util.PlainTextByLineStream;
 import opennlp.tools.util.Span;
 import opennlp.tools.util.StringUtil;
 
+import static opennlp.tools.formats.Conll02NameSampleStream.extract;
+
 /**
  * An import stream which can parse the CONLL03 data.
  */
@@ -93,8 +92,8 @@ public class Conll03NameSampleStream implements ObjectStream<NameSample>{
 
   public NameSample read() throws IOException {
 
-    List<String> sentence = new ArrayList<String>();
-    List<String> tags = new ArrayList<String>();
+    List<String> sentence = new ArrayList<>();
+    List<String> tags = new ArrayList<>();
 
     boolean isClearAdaptiveData = false;
 
@@ -133,7 +132,7 @@ public class Conll03NameSampleStream implements ObjectStream<NameSample>{
     if (sentence.size() > 0) {
 
       // convert name tags into spans
-      List<Span> names = new ArrayList<Span>();
+      List<Span> names = new ArrayList<>();
 
       int beginIndex = -1;
       int endIndex = -1;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ConllXPOSSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ConllXPOSSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ConllXPOSSampleStream.java
index 82ac5eb..b3b88fc 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ConllXPOSSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ConllXPOSSampleStream.java
@@ -68,8 +68,8 @@ public class ConllXPOSSampleStream extends FilterObjectStream<String, POSSample>
      // paragraph get lines
      BufferedReader reader = new BufferedReader(new StringReader(paragraph));
 
-     List<String> tokens = new ArrayList<String>(100);
-     List<String> tags = new ArrayList<String>(100);
+     List<String> tokens = new ArrayList<>(100);
+     List<String> tags = new ArrayList<>(100);
 
      String line;
      while ((line = reader.readLine())  != null) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java
index 10c960f..d176f8b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADChunkSampleStream.java
@@ -126,9 +126,9 @@ public class ADChunkSampleStream implements ObjectStream<ChunkSample> {
 				// skip this one
 			} else {
 				Node root = paragraph.getRoot();
-				List<String> sentence = new ArrayList<String>();
-				List<String> tags = new ArrayList<String>();
-				List<String> target = new ArrayList<String>();
+				List<String> sentence = new ArrayList<>();
+				List<String> tags = new ArrayList<>();
+				List<String> target = new ArrayList<>();
 
 				processRoot(root, sentence, tags, target);
 

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
index 5e131f2..abf6dab 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADNameSampleStream.java
@@ -80,7 +80,7 @@ public class ADNameSampleStream implements ObjectStream<NameSample> {
   private static final Map<String, String> HAREM;
 
   static {
-    Map<String, String> harem = new HashMap<String, String>();
+    Map<String, String> harem = new HashMap<>();
 
     final String person = "person";
     harem.put("hum", person);
@@ -226,7 +226,7 @@ public class ADNameSampleStream implements ObjectStream<NameSample> {
     }
   }
 
-  int textID = -1;
+  private int textID = -1;
 
   public NameSample read() throws IOException {
 
@@ -242,8 +242,8 @@ public class ADNameSampleStream implements ObjectStream<NameSample> {
       }
 
       Node root = paragraph.getRoot();
-      List<String> sentence = new ArrayList<String>();
-      List<Span> names = new ArrayList<Span>();
+      List<String> sentence = new ArrayList<>();
+      List<Span> names = new ArrayList<>();
       process(root, sentence, names);
 
       return new NameSample(sentence.toArray(new String[sentence.size()]),
@@ -359,17 +359,12 @@ public class ADNameSampleStream implements ObjectStream<NameSample> {
         } else {
           error = true;
         }
-        if (error) {
-//           Maybe it is not the same NER, skip it.
-//           System.err.println("Missing NER start for sentence [" + sentence
-//           + "] node [" + leaf + "]");
-        }
       }
 
     }
 
   private List<String> processLexeme(String lexemeStr) {
-    List<String> out = new ArrayList<String>();
+    List<String> out = new ArrayList<>();
     String[] parts = underlinePattern.split(lexemeStr);
     for (String tok : parts) {
       if(tok.length() > 1 && !alphanumericPattern.matcher(tok).matches()) {
@@ -384,8 +379,8 @@ public class ADNameSampleStream implements ObjectStream<NameSample> {
   private List<String> processTok(String tok) {
     boolean tokAdded = false;
     String original = tok;
-    List<String> out = new ArrayList<String>();
-    LinkedList<String> suffix = new LinkedList<String>();
+    List<String> out = new ArrayList<>();
+    LinkedList<String> suffix = new LinkedList<>();
     char first = tok.charAt(0);
     if (first == '�') {
       out.add(Character.toString(first));

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java
index ed030f2..ff57d83 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStream.java
@@ -124,8 +124,8 @@ public class ADPOSSampleStream implements ObjectStream<POSSample> {
     Sentence paragraph;
     while ((paragraph = this.adSentenceStream.read()) != null) {
       Node root = paragraph.getRoot();
-      List<String> sentence = new ArrayList<String>();
-      List<String> tags = new ArrayList<String>();
+      List<String> sentence = new ArrayList<>();
+      List<String> tags = new ArrayList<>();
       process(root, sentence, tags);
 
       return new POSSample(sentence, tags);
@@ -166,8 +166,8 @@ public class ADPOSSampleStream implements ObjectStream<POSSample> {
         StringTokenizer tokenizer = new StringTokenizer(lexeme, "_");
 
         if (tokenizer.countTokens() > 0) {
-          List<String> toks = new ArrayList<String>(tokenizer.countTokens());
-          List<String> tagsWithCont = new ArrayList<String>(
+          List<String> toks = new ArrayList<>(tokenizer.countTokens());
+          List<String> tagsWithCont = new ArrayList<>(
               tokenizer.countTokens());
           toks.add(tokenizer.nextToken());
           tagsWithCont.add("B-" + tag);

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStreamFactory.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStreamFactory.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStreamFactory.java
index dcae4e5..8045352 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStreamFactory.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADPOSSampleStreamFactory.java
@@ -81,10 +81,8 @@ public class ADPOSSampleStreamFactory extends
       CmdLineUtil.handleCreateObjectStreamError(ex);
     }
 
-    ADPOSSampleStream sentenceStream = new ADPOSSampleStream(lineStream,
+    return new ADPOSSampleStream(lineStream,
         params.getExpandME(), params.getIncludeFeatures());
-
-    return sentenceStream;
   }
 
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java
index ed4f58b..d3a04df 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStream.java
@@ -129,7 +129,7 @@ public class ADSentenceSampleStream implements ObjectStream<SentenceSample> {
     }
 
     StringBuilder document = new StringBuilder();
-    List<Span> sentences = new ArrayList<Span>();
+    List<Span> sentences = new ArrayList<>();
     do {
       do {
         if (!isTitle || (isTitle && isIncludeTitles)) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStreamFactory.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStreamFactory.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStreamFactory.java
index fa02a92..9e3cec7 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStreamFactory.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceSampleStreamFactory.java
@@ -79,9 +79,6 @@ public class ADSentenceSampleStreamFactory extends
       CmdLineUtil.handleCreateObjectStreamError(ex);
     }
 
-    ADSentenceSampleStream sentenceStream = new ADSentenceSampleStream(
-        lineStream, includeTitle);
-
-    return sentenceStream;
+    return new ADSentenceSampleStream(lineStream, includeTitle);
   }
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java
index 275cf4d..5497816 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/ad/ADSentenceStream.java
@@ -138,9 +138,6 @@ public class ADSentenceStream extends
 	        if(isBox) boxTag = " box";
 	        if(start > 0) {
 	          meta = line.substring(0, start) + " p=" + para + titleTag + boxTag + metaFromSource;
-	        } else {
-	          // rare case were there is no space between id and the sentence.
-              // will use previous meta for now
 	        }
         }
         sentence.setText(text);
@@ -154,7 +151,7 @@ public class ADSentenceStream extends
         }
 
         // got the root. Add it to the stack
-        Stack<Node> nodeStack = new Stack<Node>();
+        Stack<Node> nodeStack = new Stack<>();
 
         root.setSyntacticTag("ROOT");
         root.setLevel(0);
@@ -381,7 +378,7 @@ public class ADSentenceStream extends
 
     /** Represents the AD node */
     public class Node extends TreeElement {
-      private List<TreeElement> elems = new ArrayList<TreeElement>();
+      private List<TreeElement> elems = new ArrayList<>();
 
       public void addElement(TreeElement element) {
         elems.add(element);
@@ -546,12 +543,10 @@ public class ADSentenceStream extends
     	  if(sentenceStarted) {
     		  if (sentEnd.matcher(line).matches() || extEnd.matcher(line).matches()) {
 		          sentenceStarted = false;
-	          } else if(line.startsWith("A1")) {
-	            // skip
-	          } else {
+	          } else if (!line.startsWith("A1")) {
 	        	  sentence.append(line).append('\n');
 	          }
-    	  } else {
+        } else {
     		  if (sentStart.matcher(line).matches()) {
 		          sentenceStarted = true;
 		        } else if(paraStart.matcher(line).matches()) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/AnnotationConfiguration.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/AnnotationConfiguration.java b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/AnnotationConfiguration.java
index 723ddbc..9ce5b3b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/AnnotationConfiguration.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/AnnotationConfiguration.java
@@ -41,8 +41,7 @@ public class AnnotationConfiguration {
 
   public AnnotationConfiguration(Map<String, String> typeToClassMap) {
 
-    this.typeToClassMap = Collections.unmodifiableMap(
-        new HashMap<String, String>(typeToClassMap));
+    this.typeToClassMap = Collections.unmodifiableMap(new HashMap<>(typeToClassMap));
   }
 
   public String getTypeClass(String type) {
@@ -51,7 +50,7 @@ public class AnnotationConfiguration {
 
 
   public static AnnotationConfiguration parse(InputStream in) throws IOException {
-    Map<String, String> typeToClassMap = new HashMap<String, String>();
+    Map<String, String> typeToClassMap = new HashMap<>();
 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in, Charset.forName("UTF-8")));
 
@@ -63,9 +62,7 @@ public class AnnotationConfiguration {
       line = line.trim();
 
       if (line.isEmpty()) {
-        continue;
       } else if (line.startsWith("#")) {
-        continue;
       } else if (line.startsWith("[") && line.endsWith("]")) {
         sectionType = line.substring(line.indexOf('[') + 1, line.indexOf(']'));
       }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratAnnotationStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratAnnotationStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratAnnotationStream.java
index 9d4b0f2..91a2916 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratAnnotationStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratAnnotationStream.java
@@ -141,8 +141,7 @@ public class BratAnnotationStream implements ObjectStream<BratAnnotation> {
     }
   }
 
-  private final Map<String, BratAnnotationParser> parsers =
-      new HashMap<String, BratAnnotationParser>();
+  private final Map<String, BratAnnotationParser> parsers = new HashMap<>();
   private final AnnotationConfiguration config;
   private final BufferedReader reader;
   private final String id;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratDocumentStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratDocumentStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratDocumentStream.java
index ba82089..4e702cc 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratDocumentStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratDocumentStream.java
@@ -33,7 +33,7 @@ import opennlp.tools.util.ObjectStream;
 public class BratDocumentStream implements ObjectStream<BratDocument> {
 
   private AnnotationConfiguration config;
-  private List<String> documentIds = new LinkedList<String>();
+  private List<String> documentIds = new LinkedList<>();
   private Iterator<String> documentIdIterator;
 
   /**
@@ -57,7 +57,7 @@ public class BratDocumentStream implements ObjectStream<BratDocument> {
 
     this.config = config;
 
-    Stack<File> directoryStack = new Stack<File>();
+    Stack<File> directoryStack = new Stack<>();
     directoryStack.add(bratCorpusDirectory);
 
     while (!directoryStack.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratNameSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratNameSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratNameSampleStream.java
index 5bb5744..6f75c3e 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratNameSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/brat/BratNameSampleStream.java
@@ -67,7 +67,7 @@ public class BratNameSampleStream extends SegmenterObjectStream<BratDocument, Na
     // to be able to print warning a set of entities id must be maintained
     // to check if all entities have been used up after the matching is done
 
-    Set<String> entityIdSet = new HashSet<String>();
+    Set<String> entityIdSet = new HashSet<>();
 
     for (BratAnnotation ann : sample.getAnnotations()) {
       if (ann instanceof SpanAnnotation) {
@@ -93,7 +93,7 @@ public class BratNameSampleStream extends SegmenterObjectStream<BratDocument, Na
 
     // Currently we are missing all
 
-    List<NameSample> samples = new ArrayList<NameSample>(sentences.length);
+    List<NameSample> samples = new ArrayList<>(sentences.length);
 
     for (Span sentence : sentences) {
 
@@ -109,14 +109,14 @@ public class BratNameSampleStream extends SegmenterObjectStream<BratDocument, Na
       // in the tokenIndexMap.
       // The tokenIndexMap maps to the sentence local token index.
 
-      Map<Integer, Integer> tokenIndexMap = new HashMap<Integer, Integer>();
+      Map<Integer, Integer> tokenIndexMap = new HashMap<>();
 
       for (int i = 0; i < tokens.length; i++) {
         tokenIndexMap.put(-(sentence.getStart() + tokens[i].getStart()), i);
         tokenIndexMap.put(sentence.getStart() + tokens[i].getEnd(), i + 1);
       }
 
-      List<Span> names = new ArrayList<Span>();
+      List<Span> names = new ArrayList<>();
 
       for (BratAnnotation ann : sample.getAnnotations()) {
 

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/convert/AbstractToSentenceSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/convert/AbstractToSentenceSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/convert/AbstractToSentenceSampleStream.java
index 5ef543a..96434e7 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/convert/AbstractToSentenceSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/convert/AbstractToSentenceSampleStream.java
@@ -54,7 +54,7 @@ public abstract class AbstractToSentenceSampleStream<T> extends
   protected abstract String[] toSentence(T sample);
 
   public SentenceSample read() throws IOException {
-    List<String[]> sentences = new ArrayList<String[]>();
+    List<String[]> sentences = new ArrayList<>();
 
     T posSample;
     int chunks = 0;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/formats/convert/ParseToPOSSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/formats/convert/ParseToPOSSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/formats/convert/ParseToPOSSampleStream.java
index fd7dabd..ad049e0 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/formats/convert/ParseToPOSSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/formats/convert/ParseToPOSSampleStream.java
@@ -41,8 +41,8 @@ public class ParseToPOSSampleStream extends FilterObjectStream<Parse, POSSample>
 
     if (parse != null) {
 
-      List<String> sentence = new ArrayList<String>();
-      List<String> tags = new ArrayList<String>();
+      List<String> sentence = new ArrayList<>();
+      List<String> tags = new ArrayList<>();
 
       for(Parse tagNode : parse.getTagNodes()) {
         sentence.add(tagNode.getCoveredText());

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java
index e455f01..4d6d083 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DefaultLemmatizerContextGenerator.java
@@ -41,7 +41,7 @@ public class DefaultLemmatizerContextGenerator implements LemmatizerContextGener
 
   protected static String[] getPrefixes(String lex) {
     String[] prefs = new String[PREFIX_LENGTH];
-    for (int li = 1, ll = PREFIX_LENGTH; li < ll; li++) {
+    for (int li = 1; li < PREFIX_LENGTH; li++) {
       prefs[li] = lex.substring(0, Math.min(li + 1, lex.length()));
     }
     return prefs;
@@ -49,7 +49,7 @@ public class DefaultLemmatizerContextGenerator implements LemmatizerContextGener
 
   protected static String[] getSuffixes(String lex) {
     String[] suffs = new String[SUFFIX_LENGTH];
-    for (int li = 1, ll = SUFFIX_LENGTH; li < ll; li++) {
+    for (int li = 1; li < SUFFIX_LENGTH; li++) {
       suffs[li] = lex.substring(Math.max(lex.length() - li - 1, 0));
     }
     return suffs;
@@ -78,7 +78,7 @@ public class DefaultLemmatizerContextGenerator implements LemmatizerContextGener
     w0 = "w0=" + toks[index];
     t0 = "t0=" + tags[index];
 
-    List<String> features = new ArrayList<String>();
+    List<String> features = new ArrayList<>();
     
     features.add(w0);
     features.add(t0);

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DictionaryLemmatizer.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DictionaryLemmatizer.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DictionaryLemmatizer.java
index 0ae8e37..dde2d08 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DictionaryLemmatizer.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/DictionaryLemmatizer.java
@@ -47,7 +47,7 @@ public class DictionaryLemmatizer implements Lemmatizer {
    *          the input dictionary via inputstream
    */
   public DictionaryLemmatizer(final InputStream dictionary) {
-    this.dictMap = new HashMap<List<String>, String>();
+    this.dictMap = new HashMap<>();
     final BufferedReader breader = new BufferedReader(new InputStreamReader(
         dictionary));
     String line;
@@ -80,13 +80,13 @@ public class DictionaryLemmatizer implements Lemmatizer {
    * @return returns the dictionary keys
    */
   private List<String> getDictKeys(final String word, final String postag) {
-    final List<String> keys = new ArrayList<String>();
+    final List<String> keys = new ArrayList<>();
     keys.addAll(Arrays.asList(word.toLowerCase(), postag));
     return keys;
   }
   
   public String[] lemmatize(final String[] tokens, final String[] postags) {
-    List<String> lemmas = new ArrayList<String>();
+    List<String> lemmas = new ArrayList<>();
     for (int i = 0; i < tokens.length; i++) {
       lemmas.add(this.apply(tokens[i], postags[i])); 
     }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java
index fe6dd69..a19adb4 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSample.java
@@ -43,9 +43,9 @@ public LemmaSample(String[] tokens, String[] tags, String[] lemmas) {
 
     validateArguments(tokens.length, tags.length, lemmas.length);
 
-    this.tokens = Collections.unmodifiableList(new ArrayList<String>(Arrays.asList(tokens)));
-    this.tags = Collections.unmodifiableList(new ArrayList<String>(Arrays.asList(tags)));
-    this.lemmas = Collections.unmodifiableList(new ArrayList<String>(Arrays.asList(lemmas)));
+    this.tokens = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(tokens)));
+    this.tags = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(tags)));
+    this.lemmas = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(lemmas)));
   }
   
   /**
@@ -58,9 +58,9 @@ public LemmaSample(String[] tokens, String[] tags, String[] lemmas) {
 
     validateArguments(tokens.size(), tags.size(), lemmas.size());
 
-    this.tokens = Collections.unmodifiableList(new ArrayList<String>(tokens));
-    this.tags = Collections.unmodifiableList(new ArrayList<String>(tags));
-    this.lemmas = Collections.unmodifiableList(new ArrayList<String>(lemmas));
+    this.tokens = Collections.unmodifiableList(new ArrayList<>(tokens));
+    this.tags = Collections.unmodifiableList(new ArrayList<>(tags));
+    this.lemmas = Collections.unmodifiableList(new ArrayList<>(lemmas));
   }
 
   public String[] getTokens() {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleEventStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleEventStream.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleEventStream.java
index 2a71be2..1a46f4a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleEventStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleEventStream.java
@@ -45,7 +45,7 @@ public class LemmaSampleEventStream extends AbstractEventStream<LemmaSample> {
   protected Iterator<Event> createEvents(LemmaSample sample) {
 
     if (sample != null) {
-      List<Event> events = new ArrayList<Event>();
+      List<Event> events = new ArrayList<>();
       String[] toksArray = sample.getTokens();
       String[] tagsArray = sample.getTags();
       String[] lemmasArray = sample.getLemmas();

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleSequenceStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleSequenceStream.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleSequenceStream.java
index 1cdfbcf..0940dc6 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleSequenceStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleSequenceStream.java
@@ -52,7 +52,7 @@ public class LemmaSampleSequenceStream implements SequenceStream {
 
         events[i] = new Event(tags[i], context);
       }
-      return new Sequence<LemmaSample>(events,sample);
+      return new Sequence<>(events,sample);
     }
 
     return null;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleStream.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleStream.java
index b59ea07..9a2a6f0 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmaSampleStream.java
@@ -38,9 +38,9 @@ public class LemmaSampleStream extends FilterObjectStream<String, LemmaSample> {
 
   public LemmaSample read() throws IOException {
 
-    List<String> toks = new ArrayList<String>();
-    List<String> tags = new ArrayList<String>();
-    List<String> preds = new ArrayList<String>();
+    List<String> toks = new ArrayList<>();
+    List<String> tags = new ArrayList<>();
+    List<String> preds = new ArrayList<>();
 
     for (String line = samples.read(); line != null && !line.equals(""); line = samples.read()) {
       String[] parts = line.split("\t");
@@ -55,8 +55,8 @@ public class LemmaSampleStream extends FilterObjectStream<String, LemmaSample> {
       }
     }
     if (toks.size() > 0) {
-      LemmaSample lemmaSample = new LemmaSample(toks.toArray(new String[toks.size()]), tags.toArray(new String[tags.size()]), preds.toArray(new String[preds.size()]));
-      return lemmaSample;
+      return new LemmaSample(toks.toArray(new String[toks.size()]), tags.toArray(new String[tags.size()]),
+        preds.toArray(new String[preds.size()]));
     }
     else {
       return null;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/Lemmatizer.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/Lemmatizer.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/Lemmatizer.java
index 2b6ab1e..d09a8a3 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/Lemmatizer.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/Lemmatizer.java
@@ -29,6 +29,6 @@ public interface Lemmatizer {
    *
    * @return an array of lemma classes for each token in the sequence.
    */
-  public String[] lemmatize(String[] toks, String tags[]);
+  String[] lemmatize(String[] toks, String tags[]);
 
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerContextGenerator.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerContextGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerContextGenerator.java
index 5ea10c1..9513342 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerContextGenerator.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerContextGenerator.java
@@ -31,6 +31,6 @@ public interface LemmatizerContextGenerator extends BeamSearchContextGenerator<S
    * @param lemmas The previous decisions made in the tagging of this sequence.  Only indices less than i will be examined.
    * @return An array of predictive contexts on which a model basis its decisions.
    */
-  public String[] getContext(int i, String[] toks, String[] tags, String[] lemmas);
+  String[] getContext(int i, String[] toks, String[] tags, String[] lemmas);
 }
 

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerFactory.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerFactory.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerFactory.java
index 605fc84..8415e57 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerFactory.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerFactory.java
@@ -37,9 +37,7 @@ public class LemmatizerFactory extends BaseToolFactory {
       return new LemmatizerFactory();
     }
     try {
-      LemmatizerFactory theFactory = ExtensionLoader.instantiateExtension(
-          LemmatizerFactory.class, subclassName);
-      return theFactory;
+      return ExtensionLoader.instantiateExtension(LemmatizerFactory.class, subclassName);
     } catch (Exception e) {
       String msg = "Could not instantiate the " + subclassName
           + ". The initialization throw an exception.";

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java
index f25e7c4..6d97b5f 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/lemmatizer/LemmatizerME.java
@@ -79,7 +79,7 @@ public class LemmatizerME implements Lemmatizer {
       this.model = model.getLemmatizerSequenceModel();
     }
     else {
-      this.model = new opennlp.tools.ml.BeamSearch<String>(beamSize,
+      this.model = new opennlp.tools.ml.BeamSearch<>(beamSize,
           (MaxentModel) model.getLemmatizerSequenceModel(), 0);
     }
   }
@@ -97,7 +97,7 @@ public String[] lemmatize(String[] toks, String[] tags) {
    * @return the array of decoded lemmas
    */
   public String[] decodeLemmas(String[] toks, String[] preds) {
-    List<String> lemmas = new ArrayList<String>();
+    List<String> lemmas = new ArrayList<>();
     for (int i = 0; i < toks.length; i++) {
       String lemma = StringUtil.decodeShortestEditScript(toks[i].toLowerCase(), preds[i]);
       //System.err.println("-> DEBUG: " + toks[i].toLowerCase() + " " + preds[i] + " " + lemma);
@@ -153,7 +153,7 @@ public String[] lemmatize(String[] toks, String[] tags) {
 
     LemmatizerContextGenerator contextGenerator = posFactory.getContextGenerator();
 
-    Map<String, String> manifestInfoEntries = new HashMap<String, String>();
+    Map<String, String> manifestInfoEntries = new HashMap<>();
 
     TrainerType trainerType = TrainerFactory.getTrainerType(trainParams.getSettings());
 

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/TrainerFactory.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/TrainerFactory.java b/opennlp-tools/src/main/java/opennlp/tools/ml/TrainerFactory.java
index 19c9a79..207f830 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/TrainerFactory.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/TrainerFactory.java
@@ -42,7 +42,7 @@ public class TrainerFactory {
   private static final Map<String, Class> BUILTIN_TRAINERS;
 
   static {
-    Map<String, Class> _trainers = new HashMap<String, Class>();
+    Map<String, Class> _trainers = new HashMap<>();
     _trainers.put(GIS.MAXENT_VALUE, GIS.class);
     _trainers.put(QNTrainer.MAXENT_QN_VALUE, QNTrainer.class);
     _trainers.put(PerceptronTrainer.PERCEPTRON_VALUE, PerceptronTrainer.class);
@@ -89,21 +89,21 @@ public class TrainerFactory {
       ExtensionLoader.instantiateExtension(EventTrainer.class, alogrithmValue);
       return TrainerType.EVENT_MODEL_TRAINER;
     }
-    catch (ExtensionNotLoadedException e) {
+    catch (ExtensionNotLoadedException ignored) {
     }
 
     try {
       ExtensionLoader.instantiateExtension(EventModelSequenceTrainer.class, alogrithmValue);
       return TrainerType.EVENT_MODEL_SEQUENCE_TRAINER;
     }
-    catch (ExtensionNotLoadedException e) {
+    catch (ExtensionNotLoadedException ignored) {
     }
 
     try {
       ExtensionLoader.instantiateExtension(SequenceTrainer.class, alogrithmValue);
       return TrainerType.SEQUENCE_TRAINER;
     }
-    catch (ExtensionNotLoadedException e) {
+    catch (ExtensionNotLoadedException ignored) {
     }
 
     return null;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/DataStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/DataStream.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/DataStream.java
index 769e138..f8a0268 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/DataStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/DataStream.java
@@ -32,13 +32,13 @@ public interface DataStream {
    *
    * @return the Object representing the data which is next in this DataStream
    */
-  public Object nextToken();
+  Object nextToken();
 
   /**
    * Test whether there are any Events remaining in this EventStream.
    *
    * @return true if this DataStream has more data tokens
    */
-  public boolean hasNext();
+  boolean hasNext();
 }
 

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/GIS.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/GIS.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/GIS.java
index 194664e..7a57aa7 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/GIS.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/GIS.java
@@ -63,11 +63,7 @@ public class GIS extends AbstractEventTrainer {
 
     String algorithmName = getAlgorithm();
 
-    if (algorithmName != null && !(MAXENT_VALUE.equals(algorithmName))) {
-      return false;
-    }
-
-    return true;
+    return !(algorithmName != null && !(MAXENT_VALUE.equals(algorithmName)));
   }
 
   public boolean isSortAndMerge() {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/RealBasicEventStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/RealBasicEventStream.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/RealBasicEventStream.java
index 97ff167..f2c3b82 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/RealBasicEventStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/RealBasicEventStream.java
@@ -27,7 +27,7 @@ import opennlp.tools.util.ObjectStream;
 
 public class RealBasicEventStream implements ObjectStream<Event> {
   ContextGenerator cg = new BasicContextGenerator();
-  ObjectStream<String> ds;
+  private ObjectStream<String> ds;
 
   public RealBasicEventStream(ObjectStream<String> ds) {
     this.ds = ds;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryGISModelWriter.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryGISModelWriter.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryGISModelWriter.java
index 3faf337..5c3503d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryGISModelWriter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/BinaryGISModelWriter.java
@@ -31,7 +31,7 @@ import opennlp.tools.ml.model.AbstractModel;
  * Model writer that saves models in binary format.
  */
 public class BinaryGISModelWriter extends GISModelWriter {
-    DataOutputStream output;
+    private DataOutputStream output;
 
   /**
    * Constructor which takes a GISModel and a File and prepares itself to write

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
index a1120bf..45bc5c8 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
@@ -123,7 +123,6 @@ public abstract class GISModelWriter extends AbstractModelWriter {
       int[] predkeys = PARAMS[pid].getOutcomes();
       // Arrays.sort(predkeys);
       int numActive = predkeys.length;
-      int[] activeOutcomes = predkeys;
       double[] activeParams = PARAMS[pid].getParameters();
 
       numParams += numActive;
@@ -135,7 +134,7 @@ public abstract class GISModelWriter extends AbstractModelWriter {
        * PARAMS[pid].getParams(oid); id++; }
        */
       sortPreds[pid] = new ComparablePredicate(PRED_LABELS[pid],
-          activeOutcomes, activeParams);
+        predkeys, activeParams);
     }
 
     Arrays.sort(sortPreds);
@@ -143,17 +142,17 @@ public abstract class GISModelWriter extends AbstractModelWriter {
   }
 
   protected List<List<ComparablePredicate>> compressOutcomes(ComparablePredicate[] sorted) {
-    List<List<ComparablePredicate>> outcomePatterns = new ArrayList<List<ComparablePredicate>>();
+    List<List<ComparablePredicate>> outcomePatterns = new ArrayList<>();
     if(sorted.length > 0) {
         ComparablePredicate cp = sorted[0];    
-        List<ComparablePredicate> newGroup = new ArrayList<ComparablePredicate>();
+        List<ComparablePredicate> newGroup = new ArrayList<>();
         for (int i = 0; i < sorted.length; i++) {
           if (cp.compareTo(sorted[i]) == 0) {
             newGroup.add(sorted[i]);
           } else {
             cp = sorted[i];
             outcomePatterns.add(newGroup);
-            newGroup = new ArrayList<ComparablePredicate>();
+            newGroup = new ArrayList<>();
             newGroup.add(sorted[i]);
           }
         }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/OldFormatGISModelReader.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/OldFormatGISModelReader.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/OldFormatGISModelReader.java
index 31d6041..8315692 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/OldFormatGISModelReader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/OldFormatGISModelReader.java
@@ -35,7 +35,7 @@ import opennlp.tools.ml.model.Context;
  * which stores the parameters.
  */
 public class OldFormatGISModelReader extends PlainTextGISModelReader {
-    DataInputStream paramsInput;
+    private DataInputStream paramsInput;
 
   /**
    * Constructor which takes the name of the model without any suffixes, such as
@@ -68,9 +68,7 @@ public class OldFormatGISModelReader extends PlainTextGISModelReader {
     for (int i = 0; i < outcomePatterns.length; i++) {
       // construct outcome pattern
       int[] outcomePattern = new int[outcomePatterns[i].length - 1];
-      for (int k = 1; k < outcomePatterns[i].length; k++) {
-        outcomePattern[k - 1] = outcomePatterns[i][k];
-      }
+      System.arraycopy(outcomePatterns[i], 1, outcomePattern, 0, outcomePatterns[i].length - 1);
       // populate parameters for each context which uses this outcome pattern.
       for (int j = 0; j < outcomePatterns[i][0]; j++) {
         double[] contextParameters = new double[outcomePatterns[i].length - 1];

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/PlainTextGISModelWriter.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/PlainTextGISModelWriter.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/PlainTextGISModelWriter.java
index 3ef5c48..af94871 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/PlainTextGISModelWriter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/PlainTextGISModelWriter.java
@@ -21,20 +21,18 @@ package opennlp.tools.ml.maxent.io;
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.util.zip.GZIPOutputStream;
-
 import opennlp.tools.ml.model.AbstractModel;
 
 /**
  * Model writer that saves models in plain text format.
  */
 public class PlainTextGISModelWriter extends GISModelWriter {
-  BufferedWriter output;
+  private BufferedWriter output;
 
   /**
    * Constructor which takes a GISModel and a File and prepares itself to
@@ -45,7 +43,7 @@ public class PlainTextGISModelWriter extends GISModelWriter {
    * @param f The File in which the model is to be persisted.
    */
   public PlainTextGISModelWriter (AbstractModel model, File f)
-  throws IOException, FileNotFoundException {
+  throws IOException {
 
     super(model);
     if (f.getName().endsWith(".gz")) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/SuffixSensitiveGISModelReader.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/SuffixSensitiveGISModelReader.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/SuffixSensitiveGISModelReader.java
index 4bc6fd6..b6ba705 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/SuffixSensitiveGISModelReader.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/SuffixSensitiveGISModelReader.java
@@ -76,8 +76,7 @@ public class SuffixSensitiveGISModelReader extends GISModelReader {
    * inspect a few of them as plain text files.
    */
   public static void main(String[] args) throws IOException {
-    AbstractModel m = new SuffixSensitiveGISModelReader(new File(args[0]))
-        .getModel();
+    AbstractModel m = new SuffixSensitiveGISModelReader(new File(args[0])).getModel();
     new SuffixSensitiveGISModelWriter(m, new File(args[1])).persist();
   }
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/quasinewton/ParallelNegLogLikelihood.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/quasinewton/ParallelNegLogLikelihood.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/quasinewton/ParallelNegLogLikelihood.java
index 00cb55b..bbe8d1b 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/quasinewton/ParallelNegLogLikelihood.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/quasinewton/ParallelNegLogLikelihood.java
@@ -35,7 +35,7 @@ import opennlp.tools.ml.model.DataIndexer;
 public class ParallelNegLogLikelihood extends NegLogLikelihood {
 
   // Number of threads
-  int threads;
+  private int threads;
 
   // Partial value of negative log-likelihood to be computed by each thread
   private double[] negLogLikelihoodThread;
@@ -113,7 +113,7 @@ public class ParallelNegLogLikelihood extends NegLogLikelihood {
           ParallelNegLogLikelihood.class,
           int.class, int.class, int.class, double[].class);
 
-      List<Future<?>> futures = new ArrayList<Future<?>>();
+      List<Future<?>> futures = new ArrayList<>();
       for (int i = 0; i < threads; i++) {
         if (i != threads - 1)
           futures.add(executor.submit(

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/model/MaxentModel.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/MaxentModel.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/MaxentModel.java
index e8f9e28..a5fd184 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/MaxentModel.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/MaxentModel.java
@@ -33,7 +33,7 @@ public interface MaxentModel {
    *         outcomes, all of which sum to 1.
    *
    **/
-  public double[] eval(String[] context);
+  double[] eval(String[] context);
 
   /**
      * Evaluates a context.
@@ -44,7 +44,7 @@ public interface MaxentModel {
      *         outcomes, all of which sum to 1.
      * @return an array of the probabilities for each of the different outcomes, all of which sum to 1.
      **/
-  public double[] eval(String[] context, double probs[]);
+  double[] eval(String[] context, double probs[]);
 
   /**
    * Evaluates a contexts with the specified context values.
@@ -53,7 +53,7 @@ public interface MaxentModel {
    * @param values The values associated with each context.
    * @return an array of the probabilities for each of the different outcomes, all of which sum to 1.
    */
-  public double[] eval(String[] context, float[] values);
+  double[] eval(String[] context, float[] values);
 
   /**
    * Simple function to return the outcome associated with the index
@@ -64,7 +64,7 @@ public interface MaxentModel {
    *            method.
    * @return the String name of the best outcome
    **/
-  public String getBestOutcome(double[] outcomes);
+  String getBestOutcome(double[] outcomes);
 
   /**
    * Return a string matching all the outcome names with all the
@@ -79,7 +79,7 @@ public interface MaxentModel {
    *            for each one.
    **/
   // TODO: This should be removed, can't be used anyway without format spec
-  public String getAllOutcomes(double[] outcomes);
+  String getAllOutcomes(double[] outcomes);
 
   /**
    * Gets the String name of the outcome associated with the index
@@ -89,7 +89,7 @@ public interface MaxentModel {
    *          desired.
    * @return the String name of the outcome
    **/
-  public String getOutcome(int i);
+  String getOutcome(int i);
 
   /**
    * Gets the index associated with the String name of the given
@@ -100,9 +100,9 @@ public interface MaxentModel {
    * @return the index if the given outcome label exists for this
    * model, -1 if it does not.
    **/
-  public int getIndex(String outcome);
+  int getIndex(String outcome);
 
-  /**
+  /*
    * Returns the data structures relevant to storing the model.
    **/
   // public Object[] getDataStructures();
@@ -110,6 +110,6 @@ public interface MaxentModel {
   /** Returns the number of outcomes for this model.
    *  @return The number of outcomes.
    **/
-  public int getNumOutcomes();
+  int getNumOutcomes();
 
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/model/OnePassDataIndexer.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/OnePassDataIndexer.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/OnePassDataIndexer.java
index 5b9b1cb..a01b050 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/OnePassDataIndexer.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/OnePassDataIndexer.java
@@ -68,7 +68,7 @@ public class OnePassDataIndexer extends AbstractDataIndexer {
    */
   public OnePassDataIndexer(ObjectStream<Event> eventStream, int cutoff, boolean sort)
       throws IOException {
-    Map<String, Integer> predicateIndex = new HashMap<String, Integer>();
+    Map<String, Integer> predicateIndex = new HashMap<>();
     LinkedList<Event> events;
     List<ComparableEvent> eventsToCompare;
 
@@ -108,9 +108,9 @@ public class OnePassDataIndexer extends AbstractDataIndexer {
    */
   private LinkedList<Event> computeEventCounts(ObjectStream<Event> eventStream,
       Map<String, Integer> predicatesInOut, int cutoff) throws IOException {
-    Set<String> predicateSet = new HashSet<String>();
-    Map<String, Integer> counter = new HashMap<String, Integer>();
-    LinkedList<Event> events = new LinkedList<Event>();
+    Set<String> predicateSet = new HashSet<>();
+    Map<String, Integer> counter = new HashMap<>();
+    LinkedList<Event> events = new LinkedList<>();
     Event ev;
     while ((ev = eventStream.read()) != null) {
       events.addLast(ev);
@@ -128,12 +128,12 @@ public class OnePassDataIndexer extends AbstractDataIndexer {
 
   protected List<ComparableEvent> index(LinkedList<Event> events,
       Map<String, Integer> predicateIndex) {
-    Map<String, Integer> omap = new HashMap<String, Integer>();
+    Map<String, Integer> omap = new HashMap<>();
 
     int numEvents = events.size();
     int outcomeCount = 0;
-    List<ComparableEvent> eventsToCompare = new ArrayList<ComparableEvent>(numEvents);
-    List<Integer> indexedContext = new ArrayList<Integer>();
+    List<ComparableEvent> eventsToCompare = new ArrayList<>(numEvents);
+    List<Integer> indexedContext = new ArrayList<>();
 
     for (int eventIndex = 0; eventIndex < numEvents; eventIndex++) {
       Event ev = events.removeFirst();

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/model/Prior.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/Prior.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/Prior.java
index 9a7fb11..ad78172 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/Prior.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/Prior.java
@@ -31,7 +31,7 @@ public interface Prior {
    * @param dist An array to be populated with the log of the prior distribution.
    * @param context The indices of the contextual predicates for an event.
    */
-  public void logPrior(double[] dist, int[] context);
+  void logPrior(double[] dist, int[] context);
 
   /**
    * Populates the specified array with the the log of the distribution for the specified context.
@@ -40,7 +40,7 @@ public interface Prior {
    * @param context The indices of the contextual predicates for an event.
    * @param values The values associated with the context.
    */
-  public void logPrior(double[] dist, int[] context, float[] values);
+  void logPrior(double[] dist, int[] context, float[] values);
 
   /**
    * Method to specify the label for the outcomes and contexts.  This is used to map
@@ -49,5 +49,5 @@ public interface Prior {
    * @param outcomeLabels An array of each outcome label.
    * @param contextLabels An array of each context label.
    */
-  public void setLabels(String[] outcomeLabels, String[] contextLabels);
+  void setLabels(String[] outcomeLabels, String[] contextLabels);
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/model/SequenceStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/SequenceStream.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/SequenceStream.java
index 7d5dc4d..28bb449 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/SequenceStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/SequenceStream.java
@@ -32,6 +32,6 @@ public interface SequenceStream extends ObjectStream<Sequence> {
    * @param sequence The sequence to be evaluated.
    * @return event array
    */
-  public Event[] updateContext(Sequence sequence, AbstractModel model);
+  Event[] updateContext(Sequence sequence, AbstractModel model);
 
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/model/TwoPassDataIndexer.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/TwoPassDataIndexer.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/TwoPassDataIndexer.java
index 821335b..86fb6a5 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/TwoPassDataIndexer.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/TwoPassDataIndexer.java
@@ -70,7 +70,7 @@ public class TwoPassDataIndexer extends AbstractDataIndexer{
    *               observed in order to be included in the model.
    */
   public TwoPassDataIndexer(ObjectStream<Event> eventStream, int cutoff, boolean sort) throws IOException {
-    Map<String,Integer> predicateIndex = new HashMap<String,Integer>();
+    Map<String,Integer> predicateIndex = new HashMap<>();
     List<ComparableEvent> eventsToCompare;
 
     System.out.println("Indexing events using cutoff of " + cutoff + "\n");
@@ -118,10 +118,11 @@ public class TwoPassDataIndexer extends AbstractDataIndexer{
       * @param predicatesInOut a <code>TObjectIntHashMap</code> value
       * @param cutoff an <code>int</code> value
       */
-  private int computeEventCounts(ObjectStream<Event> eventStream, Writer eventStore, Map<String,Integer> predicatesInOut, int cutoff) throws IOException {
-    Map<String,Integer> counter = new HashMap<String,Integer>();
+  private int computeEventCounts(ObjectStream<Event> eventStream, Writer eventStore,
+                                 Map<String,Integer> predicatesInOut, int cutoff) throws IOException {
+    Map<String,Integer> counter = new HashMap<>();
     int eventCount = 0;
-    Set<String> predicateSet = new HashSet<String>();
+    Set<String> predicateSet = new HashSet<>();
 
     Event ev;
     while ((ev = eventStream.read()) != null) {
@@ -142,10 +143,10 @@ public class TwoPassDataIndexer extends AbstractDataIndexer{
   }
 
   private List<ComparableEvent> index(int numEvents, ObjectStream<Event> es, Map<String,Integer> predicateIndex) throws IOException {
-    Map<String,Integer> omap = new HashMap<String,Integer>();
+    Map<String,Integer> omap = new HashMap<>();
     int outcomeCount = 0;
-    List<ComparableEvent> eventsToCompare = new ArrayList<ComparableEvent>(numEvents);
-    List<Integer> indexedContext = new ArrayList<Integer>();
+    List<ComparableEvent> eventsToCompare = new ArrayList<>(numEvents);
+    List<Integer> indexedContext = new ArrayList<>();
 
     Event ev;
     while ((ev = es.read()) != null) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/LogProbabilities.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/LogProbabilities.java b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/LogProbabilities.java
index dd91ff9..0814cf3 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/LogProbabilities.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/LogProbabilities.java
@@ -159,7 +159,7 @@ public class LogProbabilities<T> extends Probabilities<T> {
 
   public void discardCountsBelow(double i) {
     i = Math.log(i);
-    ArrayList<T> labelsToRemove = new ArrayList<T>();
+    ArrayList<T> labelsToRemove = new ArrayList<>();
     for (T label : map.keySet()) {
       Double sum = map.get(label);
       if (sum == null) sum = Double.NEGATIVE_INFINITY;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java
index 05503fa..35eaa26 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModel.java
@@ -91,7 +91,7 @@ public class NaiveBayesModel extends AbstractModel {
   }
 
   public static double[] eval(int[] context, float[] values, double[] prior, EvalParameters model, boolean normalize) {
-    Probabilities<Integer> probabilities = new LogProbabilities<Integer>();
+    Probabilities<Integer> probabilities = new LogProbabilities<>();
     Context[] params = model.getParams();
     double[] outcomeTotals = model instanceof NaiveBayesEvalParameters ? ((NaiveBayesEvalParameters) model).getOutcomeTotals() : new double[prior.length];
     long vocabulary = model instanceof NaiveBayesEvalParameters ? ((NaiveBayesEvalParameters) model).getVocabulary() : 0;
@@ -121,8 +121,7 @@ public class NaiveBayesModel extends AbstractModel {
     }
     for (int i = 0; i < outcomeTotals.length; ++i) {
       double numerator = outcomeTotals[i];
-      double denominator = total;
-      probabilities.addIn(i, numerator / denominator, 1);
+      probabilities.addIn(i, numerator / total, 1);
     }
     for (int i = 0; i < outcomeTotals.length; ++i) {
       prior[i] = probabilities.get(i);
@@ -141,9 +140,8 @@ public class NaiveBayesModel extends AbstractModel {
 
   private static double getSmoothedProbability(double numerator, double denominator, double vocabulary) {
     final double delta = 0.05; // Lidstone smoothing
-    final double featureVocabularySize = vocabulary;
 
-    return 1.0 * (numerator + delta) / (denominator + delta * featureVocabularySize);
+    return 1.0 * (numerator + delta) / (denominator + delta * vocabulary);
   }
 
   public static void main(String[] args) throws java.io.IOException {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModelWriter.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModelWriter.java b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModelWriter.java
index eb17aef..d1a9263 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModelWriter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesModelWriter.java
@@ -98,15 +98,15 @@ public abstract class NaiveBayesModelWriter extends AbstractModelWriter {
 
   protected List<List<ComparablePredicate>> computeOutcomePatterns(ComparablePredicate[] sorted) {
     ComparablePredicate cp = sorted[0];
-    List<List<ComparablePredicate>> outcomePatterns = new ArrayList<List<ComparablePredicate>>();
-    List<ComparablePredicate> newGroup = new ArrayList<ComparablePredicate>();
+    List<List<ComparablePredicate>> outcomePatterns = new ArrayList<>();
+    List<ComparablePredicate> newGroup = new ArrayList<>();
     for (ComparablePredicate predicate : sorted) {
       if (cp.compareTo(predicate) == 0) {
         newGroup.add(predicate);
       } else {
         cp = predicate;
         outcomePatterns.add(newGroup);
-        newGroup = new ArrayList<ComparablePredicate>();
+        newGroup = new ArrayList<>();
         newGroup.add(predicate);
       }
     }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesTrainer.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesTrainer.java b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesTrainer.java
index c3870f9..b39b659 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesTrainer.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/NaiveBayesTrainer.java
@@ -147,7 +147,7 @@ public class NaiveBayesTrainer extends AbstractEventTrainer {
     for (int oi = 0; oi < numOutcomes; oi++)
       allOutcomesPattern[oi] = oi;
 
-    /** Stores the estimated parameter value of each predicate during iteration. */
+    /* Stores the estimated parameter value of each predicate during iteration. */
     MutableContext[] params = new MutableContext[numPreds];
     for (int pi = 0; pi < numPreds; pi++) {
       params[pi] = new MutableContext(allOutcomesPattern, new double[numOutcomes]);

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/PlainTextNaiveBayesModelWriter.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/PlainTextNaiveBayesModelWriter.java b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/PlainTextNaiveBayesModelWriter.java
index 7047419..5aa0682 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/PlainTextNaiveBayesModelWriter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/PlainTextNaiveBayesModelWriter.java
@@ -21,20 +21,18 @@ package opennlp.tools.ml.naivebayes;
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.util.zip.GZIPOutputStream;
-
 import opennlp.tools.ml.model.AbstractModel;
 
 /**
  * Model writer that saves models in plain text format.
  */
 public class PlainTextNaiveBayesModelWriter extends NaiveBayesModelWriter {
-  BufferedWriter output;
+  private BufferedWriter output;
 
   /**
    * Constructor which takes a NaiveBayesModel and a File and prepares itself to
@@ -45,7 +43,7 @@ public class PlainTextNaiveBayesModelWriter extends NaiveBayesModelWriter {
    * @param f     The File in which the model is to be persisted.
    */
   public PlainTextNaiveBayesModelWriter(AbstractModel model, File f)
-      throws IOException, FileNotFoundException {
+      throws IOException {
 
     super(model);
     if (f.getName().endsWith(".gz")) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/Probabilities.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/Probabilities.java b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/Probabilities.java
index 4c53737..394a4c6 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/Probabilities.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/naivebayes/Probabilities.java
@@ -26,7 +26,7 @@ import java.util.*;
  *
  */
 public abstract class Probabilities<T> {
-  protected HashMap<T, Double> map = new HashMap<T, Double>();
+  protected HashMap<T, Double> map = new HashMap<>();
 
   protected transient boolean isNormalised = false;
   protected Map<T, Double> normalised;
@@ -159,7 +159,7 @@ public abstract class Probabilities<T> {
   }
 
   protected Map<T, Double> createMapDataStructure() {
-    return new HashMap<T, Double>();
+    return new HashMap<>();
   }
 
   /**
@@ -190,7 +190,7 @@ public abstract class Probabilities<T> {
   }
 
   public void discardCountsBelow(double i) {
-    ArrayList<T> labelsToRemove = new ArrayList<T>();
+    ArrayList<T> labelsToRemove = new ArrayList<>();
     for (T label : map.keySet()) {
       Double sum = map.get(label);
       if (sum == null) sum = 0.0;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java
index 633ba35..7e8508a 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/BilouCodec.java
@@ -37,7 +37,7 @@ public class BilouCodec implements SequenceCodec<String> {
   public Span[] decode(List<String> c) {
     int start = -1;
     int end = -1;
-    List<Span> spans = new ArrayList<Span>(c.size());
+    List<Span> spans = new ArrayList<>(c.size());
     for (int li = 0; li < c.size(); li++) {
       String chunkTag = c.get(li);
       if (chunkTag.endsWith(BioCodec.START)) {
@@ -57,9 +57,6 @@ public class BilouCodec implements SequenceCodec<String> {
       else if (chunkTag.endsWith(UNIT)) {
         spans.add(new Span(li, li + 1, BioCodec.extractNameType(c.get(li))));
       }
-      else if (chunkTag.endsWith(BioCodec.OTHER)) {
-        // in this case do nothing
-      }
     }
 
     return spans.toArray(new Span[spans.size()]);

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java
index 1367f28..1502081 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/BioCodec.java
@@ -33,11 +33,10 @@ public class BioCodec implements SequenceCodec<String> {
 
   private static final Pattern typedOutcomePattern = Pattern.compile("(.+)-\\w+");
 
-  static final String extractNameType(String outcome) {
+  static String extractNameType(String outcome) {
     Matcher matcher = typedOutcomePattern.matcher(outcome);
     if(matcher.matches()) {
-      String nameType = matcher.group(1);
-      return nameType;
+      return matcher.group(1);
     }
 
     return null;
@@ -46,7 +45,7 @@ public class BioCodec implements SequenceCodec<String> {
   public Span[] decode(List<String> c) {
     int start = -1;
     int end = -1;
-    List<Span> spans = new ArrayList<Span>(c.size());
+    List<Span> spans = new ArrayList<>(c.size());
     for (int li = 0; li < c.size(); li++) {
       String chunkTag = c.get(li);
       if (chunkTag.endsWith(BioCodec.START)) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/DictionaryNameFinder.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/DictionaryNameFinder.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/DictionaryNameFinder.java
index a8d249f..108efa6 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/DictionaryNameFinder.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/DictionaryNameFinder.java
@@ -63,7 +63,7 @@ public class DictionaryNameFinder implements TokenNameFinder {
   }
 
   public Span[] find(String[] textTokenized) {
-    List<Span> namesFound = new LinkedList<Span>();
+    List<Span> namesFound = new LinkedList<>();
 
     for (int offsetFrom = 0; offsetFrom < textTokenized.length; offsetFrom++) {
       Span nameFound = null;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/DocumentNameFinder.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/DocumentNameFinder.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/DocumentNameFinder.java
index 130699a..c1c1b2d 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/DocumentNameFinder.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/DocumentNameFinder.java
@@ -36,6 +36,6 @@ public interface DocumentNameFinder {
    * @param document An array of tokens for each sentence of a document.
    * @return The token spans for each sentence of the specified document.
    */
-  public abstract Span[][] find(String[][] document);
+  Span[][] find(String[][] document);
 
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameContextGenerator.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameContextGenerator.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameContextGenerator.java
index b10db43..be3ee2e 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameContextGenerator.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameContextGenerator.java
@@ -30,18 +30,18 @@ public interface NameContextGenerator extends BeamSearchContextGenerator<String>
    * Adds a feature generator to this set of feature generators.
    * @param generator The feature generator to add.
    */
-  public void addFeatureGenerator(AdaptiveFeatureGenerator generator);
+  void addFeatureGenerator(AdaptiveFeatureGenerator generator);
 
   /**
    * Informs all the feature generators for a name finder that the specified tokens have been classified with the coorisponds set of specified outcomes.
    * @param tokens The tokens of the sentence or other text unit which has been processed.
    * @param outcomes The outcomes associated with the specified tokens.
    */
-  public void updateAdaptiveData(String[] tokens, String[] outcomes);
+  void updateAdaptiveData(String[] tokens, String[] outcomes);
 
   /**
    * Informs all the feature generators for a name finder that the context of the adaptive data (typically a document) is no longer valid.
    */
-  public void clearAdaptiveData();
+  void clearAdaptiveData();
 
 }

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
index b20971f..65b01c5 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderEventStream.java
@@ -39,8 +39,6 @@ public class NameFinderEventStream extends opennlp.tools.util.AbstractEventStrea
 
   private AdditionalContextFeatureGenerator additionalContextFeatureGenerator = new AdditionalContextFeatureGenerator();
 
-  private String type;
-
   private SequenceCodec<String> codec;
 
   /**
@@ -61,10 +59,11 @@ public class NameFinderEventStream extends opennlp.tools.util.AbstractEventStrea
     this.contextGenerator = contextGenerator;
     this.contextGenerator.addFeatureGenerator(new WindowFeatureGenerator(additionalContextFeatureGenerator, 8, 8));
 
+    String type1;
     if (type != null)
-      this.type = type;
+      type1 = type;
     else
-      this.type = "default";
+      type1 = "default";
   }
 
   public NameFinderEventStream(ObjectStream<NameSample> dataStream) {

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
index 1824909..00e001c 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameFinderME.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-
 import opennlp.tools.ml.BeamSearch;
 import opennlp.tools.ml.EventModelSequenceTrainer;
 import opennlp.tools.ml.EventTrainer;
@@ -54,7 +53,6 @@ import opennlp.tools.util.featuregen.SentenceFeatureGenerator;
 import opennlp.tools.util.featuregen.TokenClassFeatureGenerator;
 import opennlp.tools.util.featuregen.TokenFeatureGenerator;
 import opennlp.tools.util.featuregen.WindowFeatureGenerator;
-import opennlp.tools.util.model.ModelUtil;
 
 /**
  * Class for creating a maximum-entropy-based name finder.
@@ -95,7 +93,7 @@ public class NameFinderME implements TokenNameFinder {
   }
 
   @Deprecated
-  /**
+  /*
    * @deprecated the default feature generation is now always included in the models and loaded
    * if not by the factory. Subclasses using this methods should do the same.
    */
@@ -253,7 +251,7 @@ public class NameFinderME implements TokenNameFinder {
       beamSize = Integer.parseInt(beamSizeString);
     }
 
-    Map<String, String> manifestInfoEntries = new HashMap<String, String>();
+    Map<String, String> manifestInfoEntries = new HashMap<>();
 
     MaxentModel nameFinderModel = null;
 
@@ -327,7 +325,7 @@ public class NameFinderME implements TokenNameFinder {
       beamSize = Integer.parseInt(beamSizeString);
     }
 
-    Map<String, String> manifestInfoEntries = new HashMap<String, String>();
+    Map<String, String> manifestInfoEntries = new HashMap<>();
 
     AdaptiveFeatureGenerator featureGenerator;
 
@@ -418,11 +416,10 @@ public class NameFinderME implements TokenNameFinder {
    * @param outcome the outcome
    * @return the name type, or null if not set
    */
-  static final String extractNameType(String outcome) {
+  static String extractNameType(String outcome) {
     Matcher matcher = typedOutcomePattern.matcher(outcome);
     if (matcher.matches()) {
-      String nameType = matcher.group(1);
-      return nameType;
+      return matcher.group(1);
     }
 
     return null;

http://git-wip-us.apache.org/repos/asf/opennlp/blob/afc6b65b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java
----------------------------------------------------------------------
diff --git a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java
index 1fba758..e1dc801 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/namefind/NameSample.java
@@ -55,8 +55,8 @@ public class NameSample {
       names = new Span[0];
     }
 
-    this.sentence = Collections.unmodifiableList(new ArrayList<String>(Arrays.asList(sentence)));
-    this.names = Collections.unmodifiableList(new ArrayList<Span>(Arrays.asList(names)));
+    this.sentence = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(sentence)));
+    this.names = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(names)));
 
     if (additionalContext != null) {
       this.additionalContext = new String[additionalContext.length][];
@@ -215,8 +215,8 @@ public class NameSample {
     throws IOException {
     String[] parts = WhitespaceTokenizer.INSTANCE.tokenize(taggedTokens);
 
-    List<String> tokenList = new ArrayList<String>(parts.length);
-    List<Span> nameList = new ArrayList<Span>();
+    List<String> tokenList = new ArrayList<>(parts.length);
+    List<Span> nameList = new ArrayList<>();
 
     String nameType = defaultType;
     int startIndex = -1;