annotate src/de/mpiwg/anteater/text/TextPart.java @ 10:70510ec97f4a default tip

annotate texts with results and build events with linnaeus
author jdamerow
date Mon, 19 Nov 2012 16:36:54 -0700
parents 036535fcd179
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
036535fcd179 anteater
jdamerow
parents:
diff changeset
1 package de.mpiwg.anteater.text;
036535fcd179 anteater
jdamerow
parents:
diff changeset
2
036535fcd179 anteater
jdamerow
parents:
diff changeset
3 import java.util.ArrayList;
036535fcd179 anteater
jdamerow
parents:
diff changeset
4 import java.util.List;
036535fcd179 anteater
jdamerow
parents:
diff changeset
5
036535fcd179 anteater
jdamerow
parents:
diff changeset
6 public class TextPart {
036535fcd179 anteater
jdamerow
parents:
diff changeset
7
036535fcd179 anteater
jdamerow
parents:
diff changeset
8 private int type;
036535fcd179 anteater
jdamerow
parents:
diff changeset
9 private int textIdx;
036535fcd179 anteater
jdamerow
parents:
diff changeset
10 private List<Paragraph> paragraphs;
036535fcd179 anteater
jdamerow
parents:
diff changeset
11 private String text;
036535fcd179 anteater
jdamerow
parents:
diff changeset
12 private String date;
036535fcd179 anteater
jdamerow
parents:
diff changeset
13
036535fcd179 anteater
jdamerow
parents:
diff changeset
14 public int getType() {
036535fcd179 anteater
jdamerow
parents:
diff changeset
15 return type;
036535fcd179 anteater
jdamerow
parents:
diff changeset
16 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
17 public void setType(int type) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
18 this.type = type;
036535fcd179 anteater
jdamerow
parents:
diff changeset
19 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
20 public int getTextIdx() {
036535fcd179 anteater
jdamerow
parents:
diff changeset
21 return textIdx;
036535fcd179 anteater
jdamerow
parents:
diff changeset
22 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
23 public void setTextIdx(int textIdx) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
24 this.textIdx = textIdx;
036535fcd179 anteater
jdamerow
parents:
diff changeset
25 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
26
036535fcd179 anteater
jdamerow
parents:
diff changeset
27 public List<Paragraph> getParagraphsOfInterest() {
036535fcd179 anteater
jdamerow
parents:
diff changeset
28 List<Paragraph> paragraphsOfInterest = new ArrayList<Paragraph>();
036535fcd179 anteater
jdamerow
parents:
diff changeset
29 for (Paragraph p : paragraphs)
036535fcd179 anteater
jdamerow
parents:
diff changeset
30 if (p.getParagraphType() != ParagraphType.TYPE_SIGNATURE)
036535fcd179 anteater
jdamerow
parents:
diff changeset
31 paragraphsOfInterest.add(p);
036535fcd179 anteater
jdamerow
parents:
diff changeset
32 return paragraphsOfInterest;
036535fcd179 anteater
jdamerow
parents:
diff changeset
33 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
34
036535fcd179 anteater
jdamerow
parents:
diff changeset
35 public List<Paragraph> getParagraphs() {
036535fcd179 anteater
jdamerow
parents:
diff changeset
36 return paragraphs;
036535fcd179 anteater
jdamerow
parents:
diff changeset
37 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
38
036535fcd179 anteater
jdamerow
parents:
diff changeset
39 public void setParagraphs(List<Paragraph> paragraphs) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
40 this.paragraphs = paragraphs;
036535fcd179 anteater
jdamerow
parents:
diff changeset
41 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
42 public String getText() {
036535fcd179 anteater
jdamerow
parents:
diff changeset
43
036535fcd179 anteater
jdamerow
parents:
diff changeset
44 if (text == null) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
45 StringBuffer sb = new StringBuffer();
036535fcd179 anteater
jdamerow
parents:
diff changeset
46 for (Paragraph p : getParagraphsOfInterest()) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
47 sb.append(p.getParagraphText() + "\n");
036535fcd179 anteater
jdamerow
parents:
diff changeset
48 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
49 text = sb.toString();
036535fcd179 anteater
jdamerow
parents:
diff changeset
50 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
51
036535fcd179 anteater
jdamerow
parents:
diff changeset
52 return text;
036535fcd179 anteater
jdamerow
parents:
diff changeset
53 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
54 public int getPositionInTextFromParagraph(Paragraph paragraph, int posInParagraph) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
55 int textcounter = 0;
036535fcd179 anteater
jdamerow
parents:
diff changeset
56 for (Paragraph para : paragraphs) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
57 if (para != paragraph) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
58 textcounter += para.getParagraphText().length() + 1;
036535fcd179 anteater
jdamerow
parents:
diff changeset
59 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
60 else {
036535fcd179 anteater
jdamerow
parents:
diff changeset
61 textcounter += posInParagraph;
036535fcd179 anteater
jdamerow
parents:
diff changeset
62 break;
036535fcd179 anteater
jdamerow
parents:
diff changeset
63 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
64 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
65 return textcounter;
036535fcd179 anteater
jdamerow
parents:
diff changeset
66 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
67
036535fcd179 anteater
jdamerow
parents:
diff changeset
68 public int getPositionInParagraphFromText(int posInText) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
69 int textcounter = 0;
036535fcd179 anteater
jdamerow
parents:
diff changeset
70 for (Paragraph para : paragraphs) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
71 int paraLength = para.getParagraphText().length() + 1;
036535fcd179 anteater
jdamerow
parents:
diff changeset
72 if (posInText >= textcounter + paraLength)
036535fcd179 anteater
jdamerow
parents:
diff changeset
73 textcounter += paraLength;
036535fcd179 anteater
jdamerow
parents:
diff changeset
74 else
036535fcd179 anteater
jdamerow
parents:
diff changeset
75 return posInText - textcounter;
036535fcd179 anteater
jdamerow
parents:
diff changeset
76 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
77 return -1;
036535fcd179 anteater
jdamerow
parents:
diff changeset
78 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
79
036535fcd179 anteater
jdamerow
parents:
diff changeset
80 public Paragraph getParagraphOfIndex(int posInText) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
81 int textcounter = 0;
036535fcd179 anteater
jdamerow
parents:
diff changeset
82 for (Paragraph para : paragraphs) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
83 int paraLength = para.getParagraphText().length() + 1;
036535fcd179 anteater
jdamerow
parents:
diff changeset
84 if (posInText >= textcounter + paraLength)
036535fcd179 anteater
jdamerow
parents:
diff changeset
85 textcounter += paraLength;
036535fcd179 anteater
jdamerow
parents:
diff changeset
86 else
036535fcd179 anteater
jdamerow
parents:
diff changeset
87 return para;
036535fcd179 anteater
jdamerow
parents:
diff changeset
88 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
89 return null;
036535fcd179 anteater
jdamerow
parents:
diff changeset
90 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
91 public void setDate(String date) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
92 this.date = date;
036535fcd179 anteater
jdamerow
parents:
diff changeset
93 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
94 public String getDate() {
036535fcd179 anteater
jdamerow
parents:
diff changeset
95 return date;
036535fcd179 anteater
jdamerow
parents:
diff changeset
96 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
97
036535fcd179 anteater
jdamerow
parents:
diff changeset
98 }