alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Axis 2 example source code file (SkeletonInterfaceTemplate.xsl)

This example Axis 2 source code file (SkeletonInterfaceTemplate.xsl) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Axis 2 tags/keywords

apache, apache, asf, asf, conditions, foundation, is, just, license, license, of, see, see, you

The Axis 2 SkeletonInterfaceTemplate.xsl source code

<!--
  ~ 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.
  -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/interface">
/**
 * <xsl:value-of select="@name"/>.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis2 version: #axisVersion# #today#
 */
    package <xsl:value-of select="@package"/>;
    /**
     *  <xsl:value-of select="@name"/> java skeleton interface for the axisService
     */
    public interface <xsl:value-of select="@name"> {
     <xsl:variable name="isbackcompatible" select="@isbackcompatible"/>
     <xsl:for-each select="method">
         <xsl:variable name="count">
         <xsl:variable name="outputtype">
         <xsl:variable name="outputcomplextype">
         <xsl:variable name="outputparamcount">
         <!-- regardless of the sync or async status, the generated method signature would be just a usual
               java method -->
        /**
         * Auto generated method signature
         <xsl:choose>
            <xsl:when test="$isbackcompatible = 'true'">
                <xsl:variable name="inputcount" select="count(input/param[@location='body' and @type!=''])"/>
                <xsl:choose>
                    <xsl:when test="$inputcount=1">
                        <!-- should provide the inter complex type to method signature if is available -->
                        <xsl:variable name="inputComplexType" select="input/param[@location='body' and @type!='']/@complextype"/>
                        <xsl:choose>
                            <xsl:when test="string-length(normalize-space($inputComplexType)) > 0">
                               * @param<xsl:text> 
                            </xsl:when>
                            <xsl:otherwise>
                               * @param<xsl:text> 
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:when>
                </xsl:choose>
            </xsl:when>
            <xsl:otherwise>
                  <xsl:variable name="inputcount" select="count(input/param[@location='body' and @type!=''])"/>
                    <xsl:choose>
                        <xsl:when test="$inputcount=1">
                            <!-- Even when the parameters are 1 we have to see whether we have the
                          wrapped parameters -->
                            <xsl:variable name="inputWrappedCount" select="count(input/param[@location='body' and @type!='']/param)"/>
                            <xsl:choose>
                                <xsl:when test="$inputWrappedCount > 0">
                                   <xsl:for-each select="input/param[@location='body' and @type!='']/param">
                                        * @param<xsl:text> 
                                    </xsl:for-each>
                                </xsl:when>
                                <xsl:otherwise>
                                    * @param<xsl:text> 
                                </xsl:otherwise>
                            </xsl:choose>
                        </xsl:when>
                    </xsl:choose>
            </xsl:otherwise>
        </xsl:choose>
         */

        <xsl:choose>
            <xsl:when test="$isbackcompatible = 'true'">
                public <xsl:choose>void
                    <xsl:when test="string-length(normalize-space($outputcomplextype)) > 0">
                    <xsl:when test="$outputtype!=''">
                </xsl:choose> 
                (
                  <xsl:variable name="inputcount" select="count(input/param[@location='body' and @type!=''])"/>
                        <xsl:choose>
                            <xsl:when test="$inputcount=1">
                                <!-- should provide the inter complex type to method signature if is available -->
                                <xsl:variable name="inputComplexType" select="input/param[@location='body' and @type!='']/@complextype"/>
                                <xsl:choose>
                                    <xsl:when test="string-length(normalize-space($inputComplexType)) > 0">
                                       <xsl:value-of select="$inputComplexType"/> 
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="input/param[@location='body' and @type!='']/@type"/> 
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:when>
                            <xsl:otherwise>
                        </xsl:choose>
                 )
            </xsl:when>
            <xsl:otherwise>
                public <xsl:choose>
                    <xsl:when test="$count=0 or $outputtype=''">void
                    <xsl:when test="$outputparamcount=1">
                    <xsl:when test="string-length(normalize-space($outputcomplextype)) > 0">
                    <xsl:otherwise>
                <xsl:text> 
                (
                  <xsl:variable name="inputcount" select="count(input/param[@location='body' and @type!=''])"/>
                    <xsl:choose>
                        <xsl:when test="$inputcount=1">
                            <!-- Even when the parameters are 1 we have to see whether we have the
                          wrapped parameters -->
                            <xsl:variable name="inputWrappedCount" select="count(input/param[@location='body' and @type!='']/param)"/>
                            <xsl:choose>
                                <xsl:when test="$inputWrappedCount > 0">
                                   <xsl:for-each select="input/param[@location='body' and @type!='']/param">
                                        <xsl:if test="position()>1">, 
                                    </xsl:for-each>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="input/param[@location='body' and @type!='']/@type"/> 
                                </xsl:otherwise>
                            </xsl:choose>
                        </xsl:when>
                        <xsl:otherwise>
                    </xsl:choose>
                 )
            </xsl:otherwise>
        </xsl:choose>
         <!--add the faults-->
           <xsl:for-each select="fault/param[@type!='']">
               <xsl:if test="position()=1">throws 
               <xsl:if test="position()>1">,
           </xsl:for-each>;
        </xsl:for-each>
         }
    </xsl:template>
 </xsl:stylesheet>

Other Axis 2 examples (source code examples)

Here is a short list of links related to this Axis 2 SkeletonInterfaceTemplate.xsl source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.