<?xml version="1.0"?>
<!-- 

 Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. 

NAME
    kumodtab.xsl
DESCRIPTION
    XSLT stylesheet for MODIFY of TABLE_T objects
NOTES
    Do NOT modify this file under any circumstance. Copy the file
    if you wish to use this stylesheet with an external XML/XSL parser

MODIFIED	MM/DD/YY
    lbarton     05/16/11 - bug 12553144: declare VIEW_AS_TABLE
    lbarton     05/02/11 - Backport lbarton_bug-12346384 from main
    ebatbout    04/07/09 - 7229037: Add CHARSET, NCHARSET, Column length, and
                           Column character set id templates
    lbarton     01/26/06 - REMAP_NAME
    lbarton     11/02/05 - Bug 4715313: reformat files for use with XMLSpy 
    lbarton     07/10/02 - lbarton_mdapi_modify_transform
    lbarton     06/07/02 - Created
 -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <!-- Import required scripts -->
 <xsl:import href="kumodcom.xsl"/>
 <xsl:import href="kumodts.xsl"/>
 <!-- Top-level parameters -->
 <xsl:param name="OBJECT_ROW1">0</xsl:param>
 <xsl:param name="OBJECT_ROW2">0</xsl:param>
 <xsl:param name="OBJECT_ROW3">0</xsl:param>
 <xsl:param name="OBJECT_ROW4">0</xsl:param>
 <xsl:param name="OBJECT_ROW5">0</xsl:param>
 <xsl:param name="OBJECT_ROW6">0</xsl:param>
 <xsl:param name="OBJECT_ROW7">0</xsl:param>
 <xsl:param name="OBJECT_ROW8">0</xsl:param>
 <xsl:param name="OBJECT_ROW9">0</xsl:param>
 <xsl:param name="OBJECT_ROW10">0</xsl:param>
 <xsl:param name="REMAP_SCHEMAO1" select="''"/>
 <xsl:param name="REMAP_SCHEMAN1" select="''"/>
 <xsl:param name="REMAP_SCHEMAO2" select="''"/>
 <xsl:param name="REMAP_SCHEMAN2" select="''"/>
 <xsl:param name="REMAP_SCHEMAO3" select="''"/>
 <xsl:param name="REMAP_SCHEMAN3" select="''"/>
 <xsl:param name="REMAP_SCHEMAO4" select="''"/>
 <xsl:param name="REMAP_SCHEMAN4" select="''"/>
 <xsl:param name="REMAP_SCHEMAO5" select="''"/>
 <xsl:param name="REMAP_SCHEMAN5" select="''"/>
 <xsl:param name="REMAP_SCHEMAO6" select="''"/>
 <xsl:param name="REMAP_SCHEMAN6" select="''"/>
 <xsl:param name="REMAP_SCHEMAO7" select="''"/>
 <xsl:param name="REMAP_SCHEMAN7" select="''"/>
 <xsl:param name="REMAP_SCHEMAO8" select="''"/>
 <xsl:param name="REMAP_SCHEMAN8" select="''"/>
 <xsl:param name="REMAP_SCHEMAO9" select="''"/>
 <xsl:param name="REMAP_SCHEMAN9" select="''"/>
 <xsl:param name="REMAP_SCHEMAO10" select="''"/>
 <xsl:param name="REMAP_SCHEMAN10" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO1" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN1" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO2" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN2" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO3" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN3" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO4" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN4" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO5" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN5" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO6" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN6" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO7" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN7" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO8" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN8" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO9" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN9" select="''"/>
 <xsl:param name="REMAP_TABLESPACEO10" select="''"/>
 <xsl:param name="REMAP_TABLESPACEN10" select="''"/>
 <xsl:param name="REMAP_NAMEO1" select="''"/>
 <xsl:param name="REMAP_NAMEN1" select="''"/>
 <xsl:param name="REMAP_NAMEO2" select="''"/>
 <xsl:param name="REMAP_NAMEN2" select="''"/>
 <xsl:param name="REMAP_NAMEO3" select="''"/>
 <xsl:param name="REMAP_NAMEN3" select="''"/>
 <xsl:param name="REMAP_NAMEO4" select="''"/>
 <xsl:param name="REMAP_NAMEN4" select="''"/>
 <xsl:param name="REMAP_NAMEO5" select="''"/>
 <xsl:param name="REMAP_NAMEN5" select="''"/>
 <xsl:param name="REMAP_NAMEO6" select="''"/>
 <xsl:param name="REMAP_NAMEN6" select="''"/>
 <xsl:param name="REMAP_NAMEO7" select="''"/>
 <xsl:param name="REMAP_NAMEN7" select="''"/>
 <xsl:param name="REMAP_NAMEO8" select="''"/>
 <xsl:param name="REMAP_NAMEN8" select="''"/>
 <xsl:param name="REMAP_NAMEO9" select="''"/>
 <xsl:param name="REMAP_NAMEN9" select="''"/>
 <xsl:param name="REMAP_NAMEO10" select="''"/>
 <xsl:param name="REMAP_NAMEN10" select="''"/>
 <xsl:param name="OVERRIDE_CHARSET">0</xsl:param>
 <xsl:param name="OVERRIDE_NCHARSET">0</xsl:param>
 <xsl:param name="OVERRIDE_CHARLENGTH">0</xsl:param>
 <xsl:param name="OVERRIDE_CHARSETNAME" select="''"/>
 <xsl:param name="OVERRIDE_NCHARSETNAME" select="''"/>
 <xsl:param name="VIEW_AS_TABLE">0</xsl:param>
 <!-- Templates -->
 <xsl:template match="TABLE_T">
  <xsl:copy>
   <xsl:if test="$VIEW_AS_TABLE=1">
    <xsl:element name="VIEW_AS_TABLE"/>
   </xsl:if>
   <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
 </xsl:template>
 <xsl:template match="MOWNER">
  <xsl:choose>
   <xsl:when test=".=$REMAP_SCHEMAO1">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN1"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO2">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN2"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO3">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN3"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO4">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN4"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO5">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN5"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO6">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN6"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO7">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN7"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO8">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN8"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO9">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN9"/>
    </MOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO10">
    <MOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN10"/>
    </MOWNER>
   </xsl:when>
   <xsl:otherwise>
    <xsl:copy>
     <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>
 <xsl:template match="SOWNER">
  <xsl:choose>
   <xsl:when test=".=$REMAP_SCHEMAO1">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN1"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO2">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN2"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO3">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN3"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO4">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN4"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO5">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN5"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO6">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN6"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO7">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN7"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO8">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN8"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO9">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN9"/>
    </SOWNER>
   </xsl:when>
   <xsl:when test=".=$REMAP_SCHEMAO10">
    <SOWNER>
     <xsl:value-of select="$REMAP_SCHEMAN10"/>
    </SOWNER>
   </xsl:when>
   <xsl:otherwise>
    <xsl:copy>
     <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

<!-- Template for changing the character set name -->
 <xsl:template match="CHARSET">
  <xsl:choose>
   <xsl:when test="$OVERRIDE_CHARSETNAME">
    <!-- replace the character set id for all character/clob columns -->
    <xsl:element name="CHARSET">
     <xsl:value-of select="$OVERRIDE_CHARSETNAME"/>
    </xsl:element>
   </xsl:when>
   <xsl:otherwise>
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

<!-- Template for changing the national character set name -->
 <xsl:template match="NCHARSET">
  <xsl:choose>
   <xsl:when test="$OVERRIDE_NCHARSETNAME">
    <!-- if specified, change the national character set  -->
    <xsl:element name="NCHARSET">
     <xsl:value-of select="$OVERRIDE_NCHARSETNAME"/>
    </xsl:element>
   </xsl:when>
   <xsl:otherwise>
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

<!-- Template for changing the char/nchar set id for all character columns -->
 <xsl:template match="COL_LIST/COL_LIST_ITEM/CHARSETID">
  <xsl:choose>
   <xsl:when test="../CHARSETFORM=1 and $OVERRIDE_CHARSET > 0">
    <!-- replace the character set id for all character/clob columns -->
    <xsl:element name="CHARSETID">
     <xsl:value-of select="$OVERRIDE_CHARSET"/>
    </xsl:element>
   </xsl:when>
   <!-- replace character set id for all national character/clob columns -->
   <xsl:when test="../CHARSETFORM=2 and $OVERRIDE_NCHARSET > 0">
    <xsl:element name="CHARSETID">
     <xsl:value-of select="$OVERRIDE_NCHARSET"/>
    </xsl:element>
   </xsl:when>
   <xsl:otherwise>
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

<!-- Template for recalculating the length for a character column -->
<xsl:template match="COL_LIST/COL_LIST_ITEM/LENGTH">
  <xsl:choose>
   <xsl:when test="../CHARSETFORM=1 and $OVERRIDE_CHARSET > 0">
    <!-- recalculate the length for all character/clob columns.  The input
         variable, OVERRIDE_CHARLENGTH, contains the max width (in bytes)
         of a character for this new character set -->
    <xsl:element name="LENGTH">
     <xsl:value-of select="$OVERRIDE_CHARLENGTH * ../CHARLENGTH"/>
    </xsl:element>
   </xsl:when>
   <xsl:otherwise>
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>

</xsl:stylesheet>
