view software/eXist/mpdl-modules/src/de/mpg/mpiwg/berlin/mpdl/externalObjects/app/ExtObject.java @ 25:e9fe3186670c default tip

letzter Stand eingecheckt
author Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
date Tue, 21 May 2013 10:19:32 +0200
parents 5df60f24e997
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 ExtObject {
  protected String type; // is set by subclass: element, query, ...
  protected String uid;
  protected Date modificationDate;
  protected String documentId;
  protected String content;

  public String getXmlString() {
    return null; // always handled in subclass  
  }
  
  public ExtObject getInstance(String xmlStr) throws ApplicationException {
    return null; // always handled in subclass  
  }
  
  public String getType() {
    return type;
  }

  public String getUid() {
    return uid;
  }

  public void setUid(String uid) {
    this.uid = uid;
    // write the uid into the content node
    if (content != null && uid != null && ! content.contains("uid")) {
      int firstClose = content.indexOf(">");
      if (firstClose != -1)
        content = content.substring(0, firstClose) + " uid=\"" + uid + "\"" + content.substring(firstClose);
    } else if (content != null && uid != null && content.contains("uid")) {
      content = content.replaceAll("uid=\".*?\"", "uid=\"" + uid + "\"");
    }
  }

  public Date getModificationDate() {
    return modificationDate;
  }

  public void setModificationDate(Date modificationDate) {
    this.modificationDate = modificationDate;
    // write the modificationDate into the content node
    if (content != null && modificationDate != null && ! content.contains("modificationDate")) {
      int firstClose = content.indexOf(">");
      if (firstClose != -1)
        content = content.substring(0, firstClose) + " modificationDate=\"" + modificationDate + "\" " + content.substring(firstClose);
    } else if (content != null && modificationDate != null && content.contains("modificationDate")) {
      XmlUtil xmlUtil = XmlUtil.getInstance();
      String modDateStr = xmlUtil.toXsDate(modificationDate);
      content = content.replaceAll("modificationDate=\".*?\"", "modificationDate=\"" + modDateStr + "\"");
    }
  }

  public String getDocumentId() {
    return documentId;
  }

  public void setDocumentId(String documentId) {
    this.documentId = documentId;
  }

  public String getContent() {
    return content;
  }

  public void setContent(String content) {
    this.content = content;
  }

}