private void PopNextLemma() { // One tag (concatenated) per lemma. WordData lemma = lemmaList[lemmaListIndex++]; termAtt.SetEmpty().Append(lemma.GetStem().ToString()); var tag = lemma.GetTag(); if (tag != null) { string[] tags = lemmaSplitter.Split(tag.ToString()); for (int i = 0; i < tags.Length; i++) { if (tagsList.Count <= i) { tagsList.Add(new StringBuilder()); } StringBuilder buffer = tagsList[i]; buffer.Length = 0; buffer.Append(tags[i]); } tagsAtt.Tags = tagsList.SubList(0, tags.Length); } else { tagsAtt.Tags = Collections.EmptyList <StringBuilder>(); } }