comparison software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/donatus/xmlrpc/DonatusLemma.java @ 0:408254cf2f1d

Erstellung
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Wed, 24 Nov 2010 17:24:23 +0100
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:408254cf2f1d
1 package de.mpg.mpiwg.berlin.mpdl.donatus.xmlrpc;
2
3 import java.util.ArrayList;
4
5 public class DonatusLemma {
6 private DonatusMorphologyDocument morphDocument;
7 private String language;
8 private String type = DonatusConstants.TYPE_DONATUS;
9 private String form;
10 private String definition = "";
11 private ArrayList<DonatusVariant> variants;
12
13 public DonatusLemma(DonatusMorphologyDocument morphDoc, String language, String type, String form) {
14 this.morphDocument = morphDoc;
15 this.language = language;
16 this.type = type;
17 this.form = form;
18 this.variants = new ArrayList<DonatusVariant>();
19 // always the Lemma form is variant itself
20 DonatusVariant variant = new DonatusVariant(this, type, form);
21 variants.add(variant);
22 }
23
24 public String getLanguage() {
25 return language;
26 }
27
28 public String getForm() {
29 return form;
30 }
31
32 public ArrayList<DonatusVariant> getVariants() {
33 return variants;
34 }
35
36 public ArrayList<DonatusVariant> getVariants(String type) {
37 ArrayList<DonatusVariant> result = new ArrayList<DonatusVariant>();
38 for (int i=0; i<variants.size(); i++) {
39 DonatusVariant variant = variants.get(i);
40 String vType = variant.getType();
41 if (vType.equals(type))
42 result.add(variant);
43 }
44 return result;
45 }
46
47 public void setDefinition(String def) {
48 this.definition = def;
49 }
50
51 public void addVariant(DonatusVariant variant) {
52 morphDocument.putVariant(variant);
53 if (! variants.contains(variant) && ! variantsContainsForm(variant.getForm()))
54 variants.add(variant);
55 }
56
57 public String getXmlString() {
58 String xmlString = "<lemma form=\"" + form + "\" lang=\"" + language + "\">";
59 xmlString += "<definition>" + definition + "</definition>";
60 for (int i=0; i<variants.size(); i++) {
61 DonatusVariant variant = variants.get(i);
62 String variantXmlString = variant.getXmlString();
63 xmlString += variantXmlString;
64 }
65 xmlString += "</lemma>\n";
66 return xmlString;
67 }
68
69 public String toString() {
70 return getXmlString();
71 }
72
73 private boolean variantsContainsForm(String variantForm) {
74 boolean contains = false;
75 for (int i=0; i<variants.size(); i++) {
76 DonatusVariant v = variants.get(i);
77 String vForm = v.getForm();
78 if (vForm.equals(variantForm))
79 contains = true;
80 }
81 return contains;
82 }
83 }