@Override protected Map<SUB_CHUNK_TYPE, String> getSubChunkToOutcomeMap( JCas jCas, List<SUB_CHUNK_TYPE> chunkComponents, List<CHUNK_TYPE> chunks) { Feature feature = this.getFeature(jCas); Map<SUB_CHUNK_TYPE, String> subChunkToOutcome = new HashMap<SUB_CHUNK_TYPE, String>(); for (CHUNK_TYPE chunk : chunks) { String suffix = this.getOutcomeSuffix(chunk, feature); List<? extends SUB_CHUNK_TYPE> subChunks = JCasUtil.selectCovered(this.subChunkClass, chunk); int nSubChunks = subChunks.size(); if (nSubChunks == 1) { subChunkToOutcome.put(subChunks.get(0), "S" + suffix); } else { for (int i = 0; i < nSubChunks; ++i) { SUB_CHUNK_TYPE subChunk = subChunks.get(i); if (i == 0) { subChunkToOutcome.put(subChunk, "B" + suffix); } else if (i == nSubChunks - 1) { subChunkToOutcome.put(subChunk, "E" + suffix); } else { subChunkToOutcome.put(subChunk, "I" + suffix); } } } } return subChunkToOutcome; }