jcas.setSofaDataString(contents, "");
int sentNum = 0;
int tokNum = 0;
for (int i=0; i < tokenArrays.length; i++) {
Sentence sent = new Sentence(jcas);
LineAndTokenPosition sentStart = new LineAndTokenPosition();
sentStart.setLine(i+1);
sentStart.setTokenOffset(0);
LineAndTokenPosition sentEnd = new LineAndTokenPosition();
sentEnd.setLine(i+1);
sentEnd.setTokenOffset(tokenArrays[i].length-1);
LineTokenToCharacterOffsetConverter.BeginAndEndCharacterOffsetPair sStart = converter.convert(sentStart);
LineTokenToCharacterOffsetConverter.BeginAndEndCharacterOffsetPair sEnd = converter.convert(sentEnd);
if ((sStart == null) || (sEnd == null)) {
sent.setBegin(0);
sent.setEnd(0);
sent.setSentenceNumber(sentNum);
} else {
sent.setBegin(sStart.getBegin()); // get begin of first token
sent.setEnd(sEnd.getEnd() + 1); // get end of last token
sent.setSentenceNumber(sentNum);
}
sentNum++;
sent.addToIndexes();
for (int j=0; j < tokenArrays[i].length; j++) {
WordToken tok = new WordToken(jcas);
LineAndTokenPosition word = new LineAndTokenPosition();
word.setLine(i+1);
word.setTokenOffset(j);
LineTokenToCharacterOffsetConverter.BeginAndEndCharacterOffsetPair tPos = converter.convert(word);
if (tPos == null) {
tok.setBegin(0);
tok.setEnd(1);
} else {
tok.setBegin(tPos.getBegin());
tok.setEnd(tPos.getEnd() + 1);
}
tok.setTokenNumber(tokNum);
tokNum++;
tok.addToIndexes();
}
}
for (Annotation a : assertions) {
Concept assertion = new Concept(jcas);
LineAndTokenPosition assertionStart = new LineAndTokenPosition();
LineAndTokenPosition assertionEnd = new LineAndTokenPosition();
assertionStart.setLine(a.getBegin().getLine());
assertionStart.setTokenOffset(a.getBegin().getTokenOffset());
assertionEnd.setLine(a.getEnd().getLine());
assertionEnd.setTokenOffset(a.getEnd().getTokenOffset());
assertion.setBegin(converter.convert(assertionStart).getBegin());
assertion.setEnd(converter.convert(assertionEnd).getEnd() + 1);
assertion.setConceptType("PROBLEM");
assertion.addToIndexes();
}