Mercurial > hg > mpdl-group
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; + } +}