<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!--+
    | Convert Gump descriptor with Cocoon blocks to the Blocks Samples page
    |
    | CVS $Id$
    +-->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/root">
    <samples name="Blocks Samples">
      <group name="Back">
        <sample href=".." name="Back">
          Back to the samples home page.
        </sample>
      </group>
      <xsl:variable name="xsamples" select="xsamples/sample"/>
      <xsl:variable name="blocks" select="gump/module/project[starts-with(@name, 'cocoon-block-')]"/>
      <xsl:variable name="includedBlocks" select="$blocks[@name = $xsamples/@name]"/>
      <xsl:variable name="excludedBlocks" select="$blocks[not(@name = $xsamples/@name)]"/>
      <xsl:variable name="includedStableBlocks" select="$includedBlocks[@status = 'stable']"/>
      <xsl:variable name="includedUnstableBlocks" select="$includedBlocks[@status = 'unstable']"/>
      <xsl:variable name="includedDeprecatedBlocks" select="$includedBlocks[@status = 'deprecated']"/>

      <xsl:if test="$includedStableBlocks">
        <group name="Stable Blocks">
          <xsl:apply-templates select="$includedStableBlocks">
            <xsl:sort select="@name"/>
          </xsl:apply-templates>
        </group>
      </xsl:if>

      <xsl:if test="$includedUnstableBlocks">
        <group name="Unstable Blocks">
          <note>
            Blocks below are subject to change without notice!
          </note>
          <xsl:apply-templates select="$includedUnstableBlocks">
            <xsl:sort select="@name"/>
          </xsl:apply-templates>
        </group>
      </xsl:if>

      <xsl:if test="$includedDeprecatedBlocks">
        <group name="Deprecated Blocks">
          <note>
            Blocks below will be removed in the future!
          </note>
          <xsl:apply-templates select="$includedDeprecatedBlocks">
            <xsl:sort select="@name"/>
          </xsl:apply-templates>
        </group>
      </xsl:if>

      <xsl:if test="$excludedBlocks">
        <group name="Excluded Blocks">
          <note>
            Blocks below are either excluded from the build or have no samples.
          </note>
          <xsl:apply-templates select="$excludedBlocks" mode="excluded">
            <xsl:sort select="@name"/>
          </xsl:apply-templates>
        </group>
      </xsl:if>
    </samples>
  </xsl:template>

  <xsl:template match="project">
    <xsl:variable name="name" select="substring-after(@name,'cocoon-block-')"/>
    <xsl:variable name="sample" select="document(concat($name, '/', $name,'.xsamples'))/xsamples/group/sample"/>
    <xsl:if test="$sample">
      <xsl:apply-templates select="$sample"/>
    </xsl:if>
  </xsl:template>

  <xsl:template match="project" mode="excluded">
    <xsl:variable name="name" select="substring-after(@name,'cocoon-block-')"/>
    <sample name="{$name}">
      <strong>Note:</strong> Block has no samples or was excluded from the build.
    </sample>
  </xsl:template>

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>
