p5ant-interface.Macrodef.calling.integrate.xsl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:p5ant-interface="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/ant_interface/ant_interface.xsd"
  5. xmlns:p5dg="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/documentation_generator/documentation_generator.xsd"
  6. xmlns:p5suis="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/system_ui_info_speech/system_ui_info_speech.xsd"
  7. exclude-result-prefixes="xs"
  8. version="2.0">
  9. <!--<xsl:include href="../documentation_generator/p5dg.filepath.xsl"/>-->
  10. <!--<xsl:include href="../ant/p5ant.create_new_WPS_Function.xsl"/>-->
  11. <xsl:output indent="yes"/>
  12. <xsl:strip-space elements="*"/>
  13. <xsl:include href="../documentation_generator/p5dg.filepath.xsl"/>
  14. <xsl:param name="p5ant-interface.Macrodef.calling.integrate.build.xml" required="yes"/>
  15. <xsl:param name="p5ant-interface.Macrodef.calling.integrate.target.name" required="yes"/>
  16. <xsl:param name="p5ant-interface:Macrodef.calling.integrate.debug" select="0"/>
  17. <xsl:template name="p5ant-interface:Macrodef.calling.integrate.target.name.inputs"> <!-- to prepare required parameters if aviable from properties and are not in input xml etc -->
  18. <xsl:variable name="p5ant-interface:Macrodef.calling.integrate.target.name.inputs">
  19. <p5ant-interface:Macrodef.calling.integrate.target.name.inputs
  20. p5ant-interface.Macrodef.calling.integrate.build.xml="{$p5ant-interface.Macrodef.calling.integrate.build.xml}"
  21. p5ant-interface.Macrodef.calling.integrate.target.name="{$p5ant-interface.Macrodef.calling.integrate.target.name}"
  22. >
  23. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" select="doc($p5ant-interface.Macrodef.calling.integrate.build.xml)">
  24. <xsl:with-param name="p5ant-interface.Macrodef.calling.integrate.target.name" select="$p5ant-interface.Macrodef.calling.integrate.target.name"/>
  25. <xsl:with-param name="recurse" select="5"/>
  26. <xsl:with-param name="as" select="''"/>
  27. </xsl:apply-templates>
  28. </p5ant-interface:Macrodef.calling.integrate.target.name.inputs>
  29. </xsl:variable>
  30. <xsl:if test="number($p5ant-interface:Macrodef.calling.integrate.debug) &gt; 3"><xsl:copy-of select="$p5ant-interface:Macrodef.calling.integrate.target.name.inputs"/></xsl:if>
  31. <p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect>
  32. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect" select="$p5ant-interface:Macrodef.calling.integrate.target.name.inputs//target[@p5ant-interface:name=$p5ant-interface.Macrodef.calling.integrate.target.name][1]"/>
  33. </p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect>
  34. </xsl:template>
  35. <xsl:template mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect" match="target">
  36. <!-- <p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect>
  37. <xsl:copy-of select="@*"/>-->
  38. <xsl:variable name="root" select="root()"/>
  39. <xsl:for-each select="tokenize(@depends,',')">
  40. <!--<depend depends.each="{.}">-->
  41. <xsl:comment>#52 depends <xsl:value-of select="."/></xsl:comment>
  42. <xsl:if test="number($p5ant-interface:Macrodef.calling.integrate.debug) &gt; 3">
  43. <DEBUG>
  44. <xsl:copy-of select="$root//target[@p5ant-interface:name=current()][1]"></xsl:copy-of>
  45. </DEBUG>
  46. </xsl:if>
  47. <xsl:apply-templates select="$root//target[@p5ant-interface:name=current()][1]" mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect"/>
  48. <!--</depend>-->
  49. </xsl:for-each>
  50. <xsl:apply-templates mode="#current"/>
  51. <!--</p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect>-->
  52. </xsl:template>
  53. <xsl:template mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect" match="input">
  54. <xsl:copy copy-namespaces="no">
  55. <xsl:copy-of select="@*"/>
  56. </xsl:copy>
  57. </xsl:template>
  58. <xsl:template mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs.detect" match="*"/>
  59. <xsl:template match="*" mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs">
  60. <xsl:param name="recurse" required="yes"/>
  61. <xsl:param name="as" required="yes"/>
  62. <!--<xsl:copy copy-namespaces="no">-->
  63. <!--<xsl:attribute name="p5ant-interface:as" select="$as"/>-->
  64. <!--<xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" select="@*"/>-->
  65. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" select="*">
  66. <xsl:with-param name="recurse" select="$recurse - 1"/>
  67. <xsl:with-param name="as" select="$as"/>
  68. </xsl:apply-templates>
  69. <!--</xsl:copy>-->
  70. </xsl:template>
  71. <xsl:template match="target" mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs">
  72. <xsl:param name="recurse" required="yes"/>
  73. <xsl:param name="as" required="yes"/>
  74. <xsl:copy copy-namespaces="no">
  75. <xsl:attribute name="p5ant-interface:as" select="$as"/>
  76. <xsl:attribute name="p5ant-interface:name" select="p5ant-interface:Macrodef.calling.integrate.as($as,@name,'.')"/>
  77. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" select="@*"/>
  78. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" >
  79. <xsl:with-param name="recurse" select="$recurse - 1"/>
  80. <xsl:with-param name="as" select="$as"/>
  81. </xsl:apply-templates>
  82. </xsl:copy>
  83. </xsl:template>
  84. <xsl:template match="input|property" mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs">
  85. <xsl:param name="recurse" required="yes"/>
  86. <xsl:param name="as" required="yes"/>
  87. <xsl:copy copy-namespaces="no">
  88. <xsl:attribute name="p5ant-interface:as" select="$as"/>
  89. <xsl:attribute name="p5ant-interface:name" select="p5ant-interface:Macrodef.calling.integrate.as($as,@name,'.')"/>
  90. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" select="@*"/>
  91. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" >
  92. <xsl:with-param name="recurse" select="$recurse - 1"/>
  93. <xsl:with-param name="as" select="$as"/>
  94. </xsl:apply-templates>
  95. </xsl:copy>
  96. </xsl:template>
  97. <xsl:template mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" match="text()">
  98. <xsl:copy-of select="."/>
  99. </xsl:template>
  100. <xsl:function name="p5ant-interface:Macrodef.calling.integrate.antfile"> <!-- for only local scope -->
  101. <xsl:param name="p5ant-interface.Macrodef.calling.integrate.build.xml"/>
  102. <xsl:param name="file"/>
  103. <xsl:value-of select="concat(p5dg:filepath.dir($p5ant-interface.Macrodef.calling.integrate.build.xml),'/',$file)"/>
  104. </xsl:function>
  105. <xsl:function name="p5ant-interface:Macrodef.calling.integrate.as">
  106. <xsl:param name="current.as"/>
  107. <xsl:param name="as"/>
  108. <xsl:param name="prefixseparator"/>
  109. <xsl:variable name="out">
  110. <xsl:value-of select="$current.as"/>
  111. <xsl:choose>
  112. <xsl:when test="string-length($current.as)=0"/>
  113. <xsl:when test="$prefixseparator"><xsl:value-of select="$prefixseparator"/></xsl:when>
  114. <xsl:otherwise>.</xsl:otherwise>
  115. </xsl:choose>
  116. <xsl:value-of select="$as"/>
  117. </xsl:variable>
  118. <xsl:copy-of select="$out"/>
  119. </xsl:function>
  120. <xsl:template match="include[@file]" mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs">
  121. <xsl:param name="recurse" required="yes"/>
  122. <xsl:param name="as" required="yes"/>
  123. <xsl:copy copy-namespaces="no">
  124. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" select="@*"/>
  125. <xsl:attribute name="p5ant-interface:as" select="$as"/>
  126. <xsl:choose>
  127. <xsl:when test="not(doc-available(p5ant-interface:Macrodef.calling.integrate.antfile($p5ant-interface.Macrodef.calling.integrate.build.xml,@file)))">
  128. <doc-not-available p5ant-interface:Macrodef.calling.integrate.antfile="{p5ant-interface:Macrodef.calling.integrate.antfile($p5ant-interface.Macrodef.calling.integrate.build.xml,@file)}" >
  129. <xsl:copy-of select="@file"/>
  130. </doc-not-available>
  131. </xsl:when>
  132. <xsl:when test="$recurse &gt; 0">
  133. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" select="doc(p5ant-interface:Macrodef.calling.integrate.antfile($p5ant-interface.Macrodef.calling.integrate.build.xml,@file))">
  134. <xsl:with-param name="p5ant-interface.Macrodef.calling.integrate.target.name" select="$p5ant-interface.Macrodef.calling.integrate.target.name"/>
  135. <xsl:with-param name="recurse" select="$recurse - 1"/>
  136. <xsl:with-param name="as" select="p5ant-interface:Macrodef.calling.integrate.as($as,@as,@prefixseparator)"/>
  137. </xsl:apply-templates>
  138. </xsl:when>
  139. </xsl:choose>
  140. <xsl:apply-templates mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" >
  141. <xsl:with-param name="recurse" select="$recurse - 1"/>
  142. <xsl:with-param name="as" select="$as"/>
  143. </xsl:apply-templates>
  144. </xsl:copy>
  145. </xsl:template>
  146. <!--<xsl:template match="*" mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs">
  147. <tutaj>
  148. <xsl:copy-of select="namespace::node()"/>
  149. </tutaj>
  150. </xsl:template>-->
  151. <xsl:template mode="p5ant-interface:Macrodef.calling.integrate.target.name.inputs" match="@*">
  152. <xsl:copy-of select="."/>
  153. </xsl:template>
  154. </xsl:stylesheet>