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;
+	}
+	
+}