







package com.dynamide.datatypes;
//This file was generated by /dynamide/src/shell/webmacro/generate-datatype.wm
// IGNORING: String pagePublishOutputDir = publishOutputDir;

import org.jdom.*;

import com.dynamide.DynamideObject;
import com.dynamide.JDOMFile;
import com.dynamide.Session;

import com.dynamide.datatypes.Datatype;
import com.dynamide.datatypes.ValidationResult;

/*  Implementation note:
    Sample properties element:
    <property name="publishParams">
      <datatype>com.dynamide.datatypes.PublishParamsDatatype</datatype>
      <value>
        <URL></URL>
        <prefixURI></prefixURI>
        <outputDir></outputDir>
        <protocolHostPort></protocolHostPort>
        <defaultExtension></defaultExtension>
        <publishPagesList></publishPagesList>
      </value>
    </property>
   </p>
*/


/** A datatype to encapsulate all the parameters required to publish a Dynamide application.  Publishing is saving the dynamic application as a static set of web pages.
 * <p>Defines the following elements:
    <ul>
    <li>URL</li>
    <li>prefixURI</li>
    <li>outputDir</li>
    <li>protocolHostPort</li>
    <li>defaultExtension</li>
    <li>publishPagesList</li>
    </ul>
   </p>
   <p>Sample properties element:
<pre>    &lt;property name="publishParams">
      &lt;datatype>com.dynamide.datatypes.PublishParamsDatatype&lt;/datatype>
      &lt;value>
        &lt;URL>&lt;/URL>
        &lt;prefixURI>&lt;/prefixURI>
        &lt;outputDir>&lt;/outputDir>
        &lt;protocolHostPort>&lt;/protocolHostPort>
        &lt;defaultExtension>&lt;/defaultExtension>
        &lt;publishPagesList>&lt;/publishPagesList>
      &lt;/value>
    &lt;/property></pre>
   </p>

 */
public class PublishParamsDatatype extends com.dynamide.datatypes.Datatype {
    public PublishParamsDatatype (){
        super();
        //System.out.println("PublishParamsDatatype constructor");
    }


    public PublishParamsDatatype(DynamideObject owner, Session session){
        super(owner, session);
        //System.out.println("PublishParamsDatatype constructor(owner,session)");
    }
    public void init(Element element, String ownerID){
        set("URL", JDOMFile.safeGetElementChildText(element, "URL"));
        set("prefixURI", JDOMFile.safeGetElementChildText(element, "prefixURI"));
        set("outputDir", JDOMFile.safeGetElementChildText(element, "outputDir"));
        set("protocolHostPort", JDOMFile.safeGetElementChildText(element, "protocolHostPort"));
        set("defaultExtension", JDOMFile.safeGetElementChildText(element, "defaultExtension"));
        set("publishPagesList", JDOMFile.safeGetElementChildText(element, "publishPagesList"));
        //System.out.println("PublishParamsDatatype.init: "+toString());
    }

    public void addXMLContentTo(Element container){
        Element URLEl = new Element("URL");
        URLEl.addContent(getAsStored("URL"));
        container.addContent(URLEl);

        Element prefixURIEl = new Element("prefixURI");
        prefixURIEl.addContent(getAsStored("prefixURI"));
        container.addContent(prefixURIEl);

        Element outputDirEl = new Element("outputDir");
        outputDirEl.addContent(getAsStored("outputDir"));
        container.addContent(outputDirEl);

        Element protocolHostPortEl = new Element("protocolHostPort");
        protocolHostPortEl.addContent(getAsStored("protocolHostPort"));
        container.addContent(protocolHostPortEl);

        Element defaultExtensionEl = new Element("defaultExtension");
        defaultExtensionEl.addContent(getAsStored("defaultExtension"));
        container.addContent(defaultExtensionEl);

        Element publishPagesListEl = new Element("publishPagesList");
        publishPagesListEl.addContent(getAsStored("publishPagesList"));
        container.addContent(publishPagesListEl);

    }

    public String getURL(){return get("URL").toString();}
    public void setURL(String val){set("URL", val);}

    public String getPrefixURI(){return get("prefixURI").toString();}
    public void setPrefixURI(String val){set("prefixURI", val);}

    public String getOutputDir(){return get("outputDir").toString();}
    public void setOutputDir(String val){set("outputDir", val);}

    public String getProtocolHostPort(){return get("protocolHostPort").toString();}
    public void setProtocolHostPort(String val){set("protocolHostPort", val);}

    public String getDefaultExtension(){return get("defaultExtension").toString();}
    public void setDefaultExtension(String val){set("defaultExtension", val);}

    public String getPublishPagesList(){return get("publishPagesList").toString();}
    public void setPublishPagesList(String val){set("publishPagesList", val);}


    public String toString(){
        return "{PublishParamsDatatype: "
              +"URL="+getAsStored("URL")
              +"; prefixURI="+getAsStored("prefixURI")
              +"; outputDir="+getAsStored("outputDir")
              +"; protocolHostPort="+getAsStored("protocolHostPort")
              +"; defaultExtension="+getAsStored("defaultExtension")
              +"; publishPagesList="+getAsStored("publishPagesList")
              +"}";
    }

    public ValidationResult validate(){
        return new ValidationResult(true);//always OK
    }

}
