diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/donatus/xmlrpc/DonatusLemma.java	Wed Nov 24 17:24:23 2010 +0100
@@ -0,0 +1,83 @@
+package de.mpg.mpiwg.berlin.mpdl.donatus.xmlrpc;
+
+import java.util.ArrayList;
+
+public class DonatusLemma {
+  private DonatusMorphologyDocument morphDocument;
+  private String language;
+  private String type = DonatusConstants.TYPE_DONATUS;
+  private String form;
+  private String definition = "";
+  private ArrayList<DonatusVariant> variants;
+
+  public DonatusLemma(DonatusMorphologyDocument morphDoc, String language, String type, String form) {
+    this.morphDocument = morphDoc;
+    this.language = language;
+    this.type = type;
+    this.form = form;
+    this.variants = new ArrayList<DonatusVariant>();
+    // always the Lemma form is variant itself
+    DonatusVariant variant = new DonatusVariant(this, type, form);
+    variants.add(variant);
+  }
+  
+  public String getLanguage() {
+    return language;
+  }
+
+  public String getForm() {
+    return form;
+  }
+
+  public ArrayList<DonatusVariant> getVariants() {
+    return variants;
+  }
+  
+  public ArrayList<DonatusVariant> getVariants(String type) {
+    ArrayList<DonatusVariant> result = new ArrayList<DonatusVariant>();
+    for (int i=0; i<variants.size(); i++) {
+      DonatusVariant variant = variants.get(i);
+      String vType = variant.getType();
+      if (vType.equals(type))
+        result.add(variant);
+    }
+    return result;
+  }
+  
+  public void setDefinition(String def) {
+    this.definition = def;  
+  }
+  
+  public void addVariant(DonatusVariant variant) {
+    morphDocument.putVariant(variant);
+    if (! variants.contains(variant) && ! variantsContainsForm(variant.getForm()))
+      variants.add(variant);  
+  }
+  
+  public String getXmlString() {
+    String xmlString = "<lemma form=\"" + form + "\" lang=\"" + language + "\">";
+    xmlString += "<definition>" + definition + "</definition>";
+    for (int i=0; i<variants.size(); i++) {
+      DonatusVariant variant = variants.get(i); 
+      String variantXmlString = variant.getXmlString();
+      xmlString += variantXmlString;
+    }
+    xmlString += "</lemma>\n";
+    return xmlString;
+  }
+  
+  public String toString() {
+    return getXmlString();
+  }
+  
+  private boolean variantsContainsForm(String variantForm) {
+    boolean contains = false;
+    for (int i=0; i<variants.size(); i++) {
+      DonatusVariant v = variants.get(i); 
+      String vForm = v.getForm();
+      if (vForm.equals(variantForm))
+        contains = true;
+    }
+    return contains;
+  }
+}