view software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/externalObjects/app/ExtQuery.java @ 9:1ec29fdd0db8

neue .lex Dateien f?r Normalisierung / externe Objekte update
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 22 Feb 2011 16:03:45 +0100
parents 2396a569e446
children
line wrap: on
line source

package de.mpg.mpiwg.berlin.mpdl.externalObjects.app;

import java.util.Date;

import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException;
import de.mpg.mpiwg.berlin.mpdl.util.XmlUtil;

public class ExtQuery extends ExtObject {
  private String queryType;  // url, fulltext or fulltextMorph
  private String queryName;  // optional: name of the query

  public ExtQuery() {
    this.type = "query";  
  }
  
  public static ExtQuery parseXmlStr(String xmlStr) throws ApplicationException {
    XmlUtil xmlUtil = XmlUtil.getInstance();
    xmlUtil.setNsContext("general");
    String uid = xmlUtil.evaluateToString(xmlStr, "/object/@uid", null);
    String dateStr = xmlUtil.evaluateToString(xmlStr, "/object/@modificationDate", null);
    String docId = xmlUtil.evaluateToString(xmlStr, "/object/@documentId", null);
    String queryType = xmlUtil.evaluateToString(xmlStr, "/object/@queryType", null);
    String queryName = xmlUtil.evaluateToString(xmlStr, "/object/@queryName", null);
    String content = xmlUtil.evaluateToXmlString(xmlStr, "/object/content/*", null);
    Date modDate = xmlUtil.toDate(dateStr);
    ExtQuery e = new ExtQuery();
    e.setUid(uid);
    e.setModificationDate(modDate);
    e.setDocumentId(docId);
    e.setQueryType(queryType);
    e.setQueryName(queryName);
    if (content != null && ! content.isEmpty())
      e.setContent(content);
    return e;
  }

  public ExtQuery getInstance(String xmlStr) throws ApplicationException {
    return parseXmlStr(xmlStr);
  }
  
  public String toString() {
    return getXmlString();
  }
  
  public String getXmlString() {
    String xmlString = "<object";
    xmlString = xmlString + " type=\"" + type + "\"";
    if (modificationDate != null) {
      XmlUtil xmlUtil = XmlUtil.getInstance();
      String dateStr = xmlUtil.toXsDate(modificationDate);
      xmlString = xmlString + " modificationDate=\"" + dateStr + "\"";
    }
    if (uid != null)
      xmlString = xmlString + " uid=\"" + uid + "\"";
    if (documentId != null)
      xmlString = xmlString + " documentId=\"" + documentId + "\"";
    if (queryType != null)
      xmlString = xmlString + " queryType=\"" + queryType + "\"";
    if (queryName != null)
      xmlString = xmlString + " queryName=\"" + queryName + "\"";
    xmlString = xmlString + ">";
    if (content != null) {
      xmlString = xmlString + "<content>" + content + "</content>";
    }
    xmlString = xmlString + "</object>";
    return xmlString;
  }
  
  public String getQueryType() {
    return queryType;
  }

  public void setQueryType(String queryType) {
    this.queryType = queryType;
  }

  public String getQueryName() {
    return queryName;
  }

  public void setQueryName(String queryName) {
    this.queryName = queryName;
  }

}