Mercurial > hg > anteater
diff src/de/mpiwg/anteater/text/TextPart.java @ 0:036535fcd179
anteater
author | jdamerow |
---|---|
date | Fri, 14 Sep 2012 10:30:43 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/de/mpiwg/anteater/text/TextPart.java Fri Sep 14 10:30:43 2012 +0200 @@ -0,0 +1,98 @@ +package de.mpiwg.anteater.text; + +import java.util.ArrayList; +import java.util.List; + +public class TextPart { + + private int type; + private int textIdx; + private List<Paragraph> paragraphs; + private String text; + private String date; + + public int getType() { + return type; + } + public void setType(int type) { + this.type = type; + } + public int getTextIdx() { + return textIdx; + } + public void setTextIdx(int textIdx) { + this.textIdx = textIdx; + } + + public List<Paragraph> getParagraphsOfInterest() { + List<Paragraph> paragraphsOfInterest = new ArrayList<Paragraph>(); + for (Paragraph p : paragraphs) + if (p.getParagraphType() != ParagraphType.TYPE_SIGNATURE) + paragraphsOfInterest.add(p); + return paragraphsOfInterest; + } + + public List<Paragraph> getParagraphs() { + return paragraphs; + } + + public void setParagraphs(List<Paragraph> paragraphs) { + this.paragraphs = paragraphs; + } + public String getText() { + + if (text == null) { + StringBuffer sb = new StringBuffer(); + for (Paragraph p : getParagraphsOfInterest()) { + sb.append(p.getParagraphText() + "\n"); + } + text = sb.toString(); + } + + return text; + } + public int getPositionInTextFromParagraph(Paragraph paragraph, int posInParagraph) { + int textcounter = 0; + for (Paragraph para : paragraphs) { + if (para != paragraph) { + textcounter += para.getParagraphText().length() + 1; + } + else { + textcounter += posInParagraph; + break; + } + } + return textcounter; + } + + public int getPositionInParagraphFromText(int posInText) { + int textcounter = 0; + for (Paragraph para : paragraphs) { + int paraLength = para.getParagraphText().length() + 1; + if (posInText >= textcounter + paraLength) + textcounter += paraLength; + else + return posInText - textcounter; + } + return -1; + } + + public Paragraph getParagraphOfIndex(int posInText) { + int textcounter = 0; + for (Paragraph para : paragraphs) { + int paraLength = para.getParagraphText().length() + 1; + if (posInText >= textcounter + paraLength) + textcounter += paraLength; + else + return para; + } + return null; + } + public void setDate(String date) { + this.date = date; + } + public String getDate() { + return date; + } + +}