<?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.
-->

<project name="vxquery" default="build" basedir=".">

	<target name="build">
        <mkdir dir="${build.gen-src.dir}/org/apache/vxquery/functions"/>
        <xslt classpath="${classpath.xslt}" processor="trax" in="${src.code.dir}/org/apache/vxquery/functions/builtin-functions.xml" out="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.qnames" style="${xslt.dir}/generate-fn-qnames.xsl"/>
        <xslt classpath="${classpath.xslt}" processor="trax" in="${src.code.dir}/org/apache/vxquery/functions/builtin-functions.xml" out="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.functions" style="${xslt.dir}/generate-fn-defns.xsl"/>
        <xslt classpath="${classpath.xslt}" processor="trax" in="${src.code.dir}/org/apache/vxquery/functions/builtin-functions.xml" out="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.function_collection" style="${xslt.dir}/generate-fn-collection.xsl"/>
        <concat destfile="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinFunctions.java">
            <fileset file="${src.code.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.header"/>
            <fileset file="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.qnames"/>
            <fileset file="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.functions"/>
            <fileset file="${src.code.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.fncollection_begin"/>
            <fileset file="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.function_collection"/>
            <fileset file="${src.code.dir}/org/apache/vxquery/functions/BuiltinFunctions.java.footer"/>
        </concat>

        <xslt classpath="${classpath.xslt}" processor="trax" in="${src.code.dir}/org/apache/vxquery/functions/builtin-operators.xml" out="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinOperators.java.qnames" style="${xslt.dir}/generate-op-qnames.xsl"/>
        <xslt classpath="${classpath.xslt}" processor="trax" in="${src.code.dir}/org/apache/vxquery/functions/builtin-operators.xml" out="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinOperators.java.operators" style="${xslt.dir}/generate-op-defns.xsl"/>
		<xslt classpath="${classpath.xslt}" processor="trax" in="${src.code.dir}/org/apache/vxquery/functions/builtin-operators.xml" out="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinOperators.java.operator_collection" style="${xslt.dir}/generate-op-collection.xsl"/>
		        <concat destfile="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinOperators.java">
            <fileset file="${src.code.dir}/org/apache/vxquery/functions/BuiltinOperators.java.header"/>
            <fileset file="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinOperators.java.qnames"/>
            <fileset file="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinOperators.java.operators"/>
            <fileset file="${src.code.dir}/org/apache/vxquery/functions/BuiltinOperators.java.fncollection_begin"/>
            <fileset file="${build.gen-src.dir}/org/apache/vxquery/functions/BuiltinOperators.java.operator_collection"/>
            <fileset file="${src.code.dir}/org/apache/vxquery/functions/BuiltinOperators.java.footer"/>
        </concat>
    </target>
    
</project>
