<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

  <xsl:template match="/jsp-script">

    <xsl:text>// Generated by PolyJsp&#10;</xsl:text>

    <xsl:apply-templates select="import"/>

    <xsl:apply-templates select="declaration"/>
    <!-- <xsl:apply-templates select="errorpage"/> -->

    <xsl:text>
export var
  service = fun(request, response)
    response.result = "";
    response.mimeType = "text/html";
</xsl:text>

    <xsl:apply-templates select="contenttype"/>

    <xsl:apply-templates select="body/*"/>

    <xsl:text>
end;
</xsl:text>

  </xsl:template>

  <xsl:template match="*" priority="-1"/>

  <xsl:template match="import">
    <xsl:script><![CDATA[
      var result = "// User imports\n";
      var csImport = this.getText();
      var importList = csImport.split(",");
      for (var i = 0; i < importList.length; i++) {
        result += "import " + importList[i] + ";\n"
      }
      return result;
    ]]></xsl:script>
  </xsl:template>

  <xsl:template match="declaration">
    <xsl:text>&#10;  // Declaration&#10;  </xsl:text>
    <xsl:value-of select="."/>
    <xsl:text>&#10;&#10;</xsl:text>
  </xsl:template>

  <xsl:template match="contenttype">
    <xsl:text>    response.mimeType = "</xsl:text>
    <xsl:value-of select='.'/>
    <xsl:text>";&#10;</xsl:text>
  </xsl:template>

  <xsl:template match="header" priority="999">
    <xsl:text>    response.header["</xsl:text>
    <xsl:value-of select='@name'/>
    <xsl:text>"] := "</xsl:text>
    <xsl:value-of select='@value'/>
    <xsl:text>";&#10;</xsl:text>
  </xsl:template>

  <xsl:template match="boilerplate">
    <xsl:text>    response.result = response.result + "</xsl:text>
    <xsl:value-of select='.'/>
    <xsl:text>";&#10;</xsl:text>
  </xsl:template>

  <xsl:template match="scriptlet">
    <xsl:text>    </xsl:text>
    <xsl:value-of select="."/>
    <xsl:text>&#10;</xsl:text>
  </xsl:template>

  <xsl:template match="expression">
    <xsl:text>    response.result = response.result + </xsl:text>
    <xsl:value-of select="."/>
    <xsl:text>;&#10;</xsl:text>
  </xsl:template>
</xsl:stylesheet>
