glue-java.xsl revision 825c2485cf84eec495985ffd605a1c9cddee8c32
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:stylesheet version = '1.0'
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync extension-element-prefixes="exsl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync XSLT stylesheet that generates Java glue code for XPCOM, MSCOM and JAX-WS from
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Copyright (C) 2010 Oracle Corporation
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync This file is part of VirtualBox Open Source Edition (OSE), as
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync available from http://www.virtualbox.org. This file is free software;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync you can redistribute it and/or modify it under the terms of the GNU
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync General Public License (GPL) as published by the Free Software
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Foundation, in version 2 as it comes in the "COPYING" file of the
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync method="text"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync version="1.0"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync encoding="utf-8"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync indent="no"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- - - - - - - - - - - - - - - - - - - - - - -
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync global XSLT variables
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync - - - - - - - - - - - - - - - - - - - - - - -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:variable name="G_xsltFilename" select="'glue-java.xsl'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:variable name="G_virtualBoxPackage" select="concat('org.virtualbox',$G_vboxApiSuffix)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:variable name="G_virtualBoxPackageCom" select="concat('org.virtualbox',$G_vboxApiSuffix,'.',$G_vboxGlueStyle)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:variable name="G_virtualBoxWsdl" select="concat(concat('"vboxwebService',$G_vboxApiSuffix), '.wsdl"')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- collect all interfaces with "wsmap='suppress'" in a global variable for
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync quick lookup -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:variable name="G_setSuppressedInterfaces"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync select="//interface[@wsmap='suppress']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:include href="../webservice/websrv-shared.inc.xsl" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="fileheader">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>/**
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * Copyright (C) 2010 Oracle Corporation
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * available from http://www.virtualbox.org. This file is free software;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * you can redistribute it and/or modify it under the terms of the GNU
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * General Public License (GPL) as published by the Free Software
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' * ',$name)"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * DO NOT EDIT! This is a generated file.
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * Generated from: src/VBox/Main/idl/VirtualBox.xidl (VirtualBox's interface definitions in XML)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="file" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="package" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' // ##### BEGINFILE "', $file, '" ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fileheader">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="name" select="$file" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('package ',$package,'; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('import ',$G_virtualBoxPackageCom,'.*; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'import org.mozilla.interfaces.*; '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'import com.jacob.com.*; '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'import com.jacob.activeX.ActiveXComponent; '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" 'import javax.xml.ws.*; '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'no header rule (startFile)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="file" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' // ##### ENDFILE "', $file, '" ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genEnum">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="enumname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public enum ', $enumname, ' { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="const">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="enumconst" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $enumconst, '(', @value, ')')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>, </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> private final int value; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $enumname, '(int v) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> value = v; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> } </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> public int value() { </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> return value; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> } </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public static ', $enumname, ' fromValue(long v) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' for (', $enumname, ' c: ', $enumname, '.values()) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> if (c.value == (int)v) { </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> return c; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> } </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> } </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> throw new IllegalArgumentException(Long.toString(v)); </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> } </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public static ', $enumname, ' fromValue(String v) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return valueOf(',$enumname, '.class, v); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>} </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="startExcWrapper">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' try { '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="endExcWrapper">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (org.mozilla.xpcom.XPCOMException e) { '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage()); '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (com.jacob.com.ComException e) { '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage()); '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (InvalidObjectFaultMsg e) { '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage()); '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (RuntimeFaultMsg e) { '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage()); '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'no header rule (startFile)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="wrappedName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('org.mozilla.interfaces.',$ifname)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'com.jacob.com.Dispatch'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'no wrapper naming rule defined (wrappedName)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="fullClassName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="origname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="collPrefix" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$name] or //enum[@name=$origname]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($G_virtualBoxPackage, concat('.', $name))" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$name]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($G_virtualBoxPackage, concat('.', $name))" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('fullClassName: Type "', $name, '" is not supported.')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="forceelem" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="needarray" select="($safearray='yes') and not($forceelem='yes')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'List<'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- look up Java type from IDL type from table array in websrv-shared.inc.xsl -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="javatypefield" select="exsl:node-set($G_aSharedTypes)/type[@idlname=$type]/@javaname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="string-length($javatypefield)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$javatypefield" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- not a standard type: then it better be one of the types defined in the XIDL -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='$unknown'">IUnknown</xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fullClassName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="name" select="$type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="collPrefix" select="''"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'>'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync typeIdl2Back: converts $type into a type as used by the backend.
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="forceelem" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="needarray" select="($safearray='yes') and not($forceelem='yes')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='xpcom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- stupid, rewrite the bridge -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'double'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'int'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'int'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='octet'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'boolean'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'nsISupports'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='wstring'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='uuid'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$type]/@wsmap='struct'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="wrappedName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$type]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="wrappedName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$type]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fullClassName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="name" select="$type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'[]'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='mscom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Variant'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'List<'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$type]/@wsmap='managed'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$type]/@wsmap='struct'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($G_virtualBoxPackageCom, '.', $type)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$type]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($G_virtualBoxPackageCom, '.', $type)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'BigInteger'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Integer'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Integer'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='octet'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Boolean'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='wstring'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='uuid'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Unhandled type ', $type,' (typeIdl2Back)')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'>'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Write typeIdl2Back for this style (typeIdl2Back)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookOutParamXpcom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="isstruct"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync select="//interface[@name=$idltype]/@wsmap='struct'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elemgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="'no'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$idltype] or $idltype='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elembacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrap2(',$elemgluetype, '.class, ', $elembacktype, '.class, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(', $value, ' != null) ? new ', $gluetype, '(', $value,') : null')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elembacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrapEnum(',$elemgluetype, '.class, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($gluetype,'.fromValue(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrapUnsignedLongLong(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.doubleToBigInteger(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrap(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookOutParamMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elemgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="'no'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrap(', $elemgluetype, '.class, ', $value,'.toSafeArray())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$idltype] or $idltype='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrapDispatch(',$gluetype, '.class, ', $value,'.getDispatch())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($gluetype,'.fromValue(', $value,'.getInt())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='wstring'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getString()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='uuid'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getString()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.toBoolean()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(int)', $value,'.getShort()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getShort()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getInt()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(long)', $value,'.getInt()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getInt()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getLong()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.longToBigInteger(',$value,'.getLong())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Unhandled type' , $idltype, ' (cookOutParamMscom)')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookOutParamJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="isstruct"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync select="//interface[@name=$idltype]/@wsmap='struct'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elemgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="''" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elembacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="''" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$isstruct">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrap2(',$elemgluetype, '.class, ', $elembacktype, '.class, port, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.convertEnums(',$elembacktype, '.class, ', $elemgluetype, '.class, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$idltype] or $idltype='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.wrap(',$elemgluetype,'.class, port, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($gluetype,'.fromValue(', $value,'.value())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='wstring'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='uuid'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$isstruct">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(', $value, ' != null) ? new ', $gluetype, '(', $value,', port) : null')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$idltype] or $idltype='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- if the MOR string is empty, that means NULL, so return NULL instead of an object then -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(', $value, '.length() > 0) ? new ', $gluetype, '(', $value,', port) : null')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Unhandled type ', $idltype, ' (cookOutParamJaxws)')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookOutParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='xpcom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParamXpcom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$value" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='mscom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParamMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$value" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParamJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$value" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Unhandled style(cookOutParam)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookInParamXpcom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="isstruct"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync select="//interface[@name=$idltype]/@wsmap='struct'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backtype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elemgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="'no'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elembacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrap2(',$elemgluetype, '.class, ', $elembacktype, '.class, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(', $value, ' != null) ? ', $value, '.getTypedWrapped() : null')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrap2(',$elemgluetype, '.class, nsISupports.class, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(', $value, ' != null) ? (nsISupports)', $value, '.getWrapped() : null')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrapEnum(', $elemgluetype, '.class,', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.value()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.bigIntegerToDouble(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrap(',$value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookInParamMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backtype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elemgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="'no'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elembacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrap2(',$elemgluetype, '.class, ', $elembacktype, '.class, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(', $value, ' != null) ? ', $value, '.getTypedWrapped() : null')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrap2(',$elemgluetype, '.class, Dispatch.class, ', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(', $value, ' != null) ? (Dispatch)', $value, '.getWrapped() : null')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrapEnum(', $elemgluetype, '.class,',$value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.value()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrapBool(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('new Variant(',$value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($idltype='short') or ($idltype='unsigned short')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrapShort(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('new Variant(',$value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($idltype='long') or ($idltype='unsigned long')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrapInt(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('new Variant(',$value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($idltype='wstring') or ($idltype='uuid')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrapString(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('new Variant(',$value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($idltype='unsigned long long') or ($idltype='long long')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrapLong(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('new Variant(',$value,'.longValue())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Unhandled type: ', $idltype)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookInParamJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="isstruct"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync select="//interface[@name=$idltype]/@wsmap='struct'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elemgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="'no'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$idltype] or $idltype='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.unwrap(',$value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('((', $value, ' == null) ? null :', $value, '.getWrapped())')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="elembacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="'no'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.convertEnums(', $elemgluetype, '.class,', $elembacktype, '.class,', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backtype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="'no'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="forceelem" select="'yes'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($backtype, '.fromValue(', $value, '.name())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='xpcom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParamXpcom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$value" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='mscom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParamMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$value" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParamJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$value" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$idltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Unhandled style (cookInParam)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- Invoke backend method, including parameter conversion -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genBackMethodCall">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="methodname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="retval"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='xpcom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="param[@dir='return']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($retval, ' = ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('getTypedWrapped().', $methodname,'(')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='return'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="@safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'null'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="@safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'null, '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='in'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="@safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(@name,'.size(), ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="unwrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$unwrapped"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Unsupported param dir: ', @dir, '".')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last()) and not(following-sibling::param[1]/@dir='return' and not(following-sibling::param[1]/@safearray='yes'))">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'); '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='mscom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="param[@dir='return']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($retval, ' = ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.invoke(getTypedWrapped(), "', $methodname, '" ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param[not(@dir='return')]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='in'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="unwrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$unwrapped"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'); '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="jaxwsmethod">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="makeJaxwsMethod">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="methodname" select="$methodname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="portArg">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(//interface[@name=$ifname]/@wsmap='global')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'obj'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="paramsinout" select="param[@dir='in' or @dir='out']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="param[@dir='return'] and not(param[@dir='out'])">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($retval, ' = ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('port.', $jaxwsmethod, '(', $portArg)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$paramsinout and not($portArg='')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- jax-ws has an oddity: if both out params and a return value exist,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync then the return value is moved to the function's argument list... -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="param[@dir='out'] and param[@dir='return']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='return'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$retval"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="$paramsinout">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='return'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$retval"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'); '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (genBackMethodCall)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genGetterCall">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="gettername"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="backtype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="retval"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backtype, ' ', $retval,' = getTypedWrapped().', $gettername,'(')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="@safearray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'null'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'); '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backtype, ' ', $retval,' = Dispatch.get(getTypedWrapped(), "', @name,'"); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="jaxwsGetter">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="makeJaxwsMethod">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="methodname" select="$gettername" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backtype, ' ', $retval,' = port.', $jaxwsGetter, '(obj); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (genGetterCall)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genSetterCall">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="settername"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' getTypedWrapped().', $settername, '(', $value,'); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' Dispatch.put(getTypedWrapped(), "', @name,'", ',$value, '); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="jaxwsSetter">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="makeJaxwsMethod">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="methodname" select="$settername" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' port.', $jaxwsSetter, '(obj, ', $value,'); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (genSetterCall)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genStructWrapperJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' private ', $G_virtualBoxPackageCom,'.',$ifname, ' real; ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' private VboxPortType port; '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $ifname, '(', $G_virtualBoxPackageCom,'.',$ifname,' real, VboxPortType port) { this.real = real; this.port = port; } ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="attribute">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrname"><xsl:value-of select="@name" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrtype"><xsl:value-of select="@type" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrreadonly"><xsl:value-of select="@readonly" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrsafearray"><xsl:value-of select="@safearray" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not($attrreadonly)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Non read-only struct (genStructWrapperJaxws)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Emit getter -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backgettername">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Stupid, but backend boolean getters called isFoo(), not getFoo() -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$attrtype = 'boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="capsname">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="capitalize">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="str" select="$attrname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('is', $capsname)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="makeGetterName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="attrname" select="$attrname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluegettername">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="makeGetterName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="attrname" select="$attrname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluegettertype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$attrtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backgettertype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$attrtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $gluegettertype, ' ', $gluegettername, '() { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backgettertype, ' retVal = real.', $backgettername, '(); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="'retVal'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$attrtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return ', $wrapped, '; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- Interface method wrapper -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genMethod">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="methodname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="(param[@mod='ptr']) or (($G_vboxGlueStyle='jaxws') and (param[@type=($G_setSuppressedInterfaces/@name)]))" >
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:comment>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Skipping method ', $methodname, ' for it has parameters with suppressed types')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:comment>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="hasReturnParms" select="param[@dir='return']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="hasOutParms" select="param[@dir='out']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returnidltype" select="param[@dir='return']/@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returnidlsafearray" select="param[@dir='return']/@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returngluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$returnidltype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$returnidltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$returnidlsafearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>void</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="retValValue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="(param[@dir='out']) and ($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'retVal.value'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'retVal'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $returngluetype, ' ', $methodname, '(')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="paramsinout" select="param[@dir='in' or @dir='out']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="exsl:node-set($paramsinout)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="paramgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Holder<', $paramgluetype, '> ', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($paramgluetype, ' ', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="') { '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- declare temp out params -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param[@dir='out']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backouttype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backouttype, '[] tmp_', @name, ' = (', $backouttype, '[])java.lang.reflect.Array.newInstance(',$backouttype,'.class, 1); ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' Variant tmp_', @name, ' = new Variant(); ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' javax.xml.ws.Holder<', $backouttype,'> tmp_', @name, ' = new javax.xml.ws.Holder<', $backouttype,'>(); ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Handle out param (genMethod)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- declare return param, if any -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$hasReturnParms">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backrettype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$returnidltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$returnidlsafearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="(param[@dir='out']) and ($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' javax.xml.ws.Holder<', $backrettype, '>',
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ' retVal = new javax.xml.ws.Holder<', $backrettype,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync '>(); ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backrettype, ' retVal; ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Method call -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genBackMethodCall">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="methodname" select="$methodname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="retval" select="'retVal'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- return out params -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param[@dir='out']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="varval">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_',@name,'[0]')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_',@name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_',@name,'.value')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (genMethod, outparam)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$varval" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', @name, '.value = ',$wrapped,'; ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$hasReturnParms">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- actual 'return' statement -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$retValValue" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$returnidltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$returnidlsafearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return ', $wrapped, '; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- Callback interface method -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genCbMethodDecl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="methodname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="(param[@mod='ptr'])" >
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:comment>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Skipping method ', $methodname, ' for it has parameters with suppressed types')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:comment>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returnidltype" select="param[@dir='return']/@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returnidlsafearray" select="param[@dir='return']/@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returngluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$returnidltype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$returnidltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$returnidlsafearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>void</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $returngluetype, ' ', $methodname, '(')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="paramsinout" select="param[@dir='in' or @dir='out']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="exsl:node-set($paramsinout)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="paramgluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Holder<', $paramgluetype, '> ', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($paramgluetype, ' ', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>, </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'); '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- queryInterface wrapper -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genQI">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="uuid" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public static ', $ifname, ' queryInterface(IUnknown obj) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backtype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' nsISupports nsobj = obj != null ? (nsISupports)obj.getWrapped() : null; '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' if (nsobj == null) return null; '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ',$backtype, ' qiobj = Helper.queryInterface(nsobj, "{',$uuid,'}", ',$backtype,'.class); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return qiobj == null ? null : new ', $ifname, '(qiobj); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return', ' obj == null ? null : new ', $ifname, '((com.jacob.com.Dispatch)obj.getWrapped()); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- bad, need to check that we really can be casted to this type -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return obj == null ? null : new ', $ifname, '(obj.getWrapped(), obj.getRemoteWSPort()); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (genQI)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genCbMethodImpl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="methodname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="(param[@mod='ptr'])" >
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:comment>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Skipping method ', $methodname, ' for it has parameters with suppressed types')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:comment>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="hasReturnParms" select="param[@dir='return']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="hasOutParms" select="param[@dir='out']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returnidltype" select="param[@dir='return']/@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returnidlsafearray" select="param[@dir='return']/@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="returnbacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$returnidltype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$returnidltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$returnidlsafearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>void</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="paramsinout" select="param[@dir='in' or @dir='out']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $returnbacktype, ' ', $methodname, '(')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="exsl:node-set($paramsinout)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="parambacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($parambacktype, '[] ', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="@safearray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('long len_',@name,', ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($parambacktype, ' ', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>, </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="') { '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="capsname">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="capitalize">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="str" select="$methodname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $returnbacktype, ' ', $capsname, '(')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Variant _args[]'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="') { '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="exsl:node-set($paramsinout)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="parambacktype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $parambacktype, ' ', @name, '=_args[', count(preceding-sibling::param),']; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (genSetterCall)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- declare temp out params -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param[@dir='out']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="glueouttype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' Holder<', $glueouttype, '> tmp_', @name, ' = new Holder<', $glueouttype, '>(); ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- declare return param, if any -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$hasReturnParms">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluerettype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$returnidltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$returnidlsafearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $gluerettype, ' retVal = ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Method call -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' sink.', $methodname,'(')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param[not(@dir='return')]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('tmp_', @name)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='in'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$wrapped"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Unsupported param dir: ', @dir, '".')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'); '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- return out params -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param[@dir='out']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="unwrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="concat('tmp_',@name,'.value')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="@type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', @name, '[0] = ',$unwrapped,'; ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' _args[',count(preceding-sibling::param),'] = ',$unwrapped,'; ')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$hasReturnParms">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- actual 'return' statement -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="unwrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="'retVal'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$returnidltype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="$returnidlsafearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return ', $unwrapped, '; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- Interface method -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genIfaceWrapper">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wrappedType">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="wrappedName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Constructor -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $ifname, '(String wrapped, VboxPortType port) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' super(wrapped, port); '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' } '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='xpcom') or ($G_vboxGlueStyle='mscom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $ifname, '(', $wrappedType,' wrapped) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' super(wrapped); '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' } '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Typed wrapped object accessor -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $wrappedType, ' getTypedWrapped() { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return (', $wrappedType, ') getWrapped(); ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (root, ctr)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Attributes -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="attribute[not(@mod='ptr')]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrname"><xsl:value-of select="@name" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrtype"><xsl:value-of select="@type" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrreadonly"><xsl:value-of select="@readonly" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="attrsafearray"><xsl:value-of select="@safearray" /></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws') and ($attrtype=($G_setSuppressedInterfaces/@name))">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' // skip attribute ',$attrname, ' of suppressed type ', $attrtype, ' ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- emit getter method -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gettername">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="makeGetterName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="attrname" select="$attrname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="gluetype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$attrtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backtype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$attrtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookOutParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="'retVal'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$attrtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $gluetype, ' ', $gettername, '() { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Actual getter implementation -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genGetterCall">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="gettername" select="$gettername" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="backtype" select="$backtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="retval" select="'retVal'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return ', $wrapped, '; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select= "' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(@readonly='yes')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- emit setter method -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="settername"><xsl:call-template name="makeSetterName"><xsl:with-param name="attrname" select="$attrname" /></xsl:call-template></xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="unwrapped">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="cookInParam">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="'value'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="idltype" select="$attrtype" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="safearray" select="@safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public void ', $settername, '(', $gluetype, ' value) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Actual setter implementation -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genSetterCall">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="settername" select="$settername" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="value" select="$unwrapped" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select= "' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- emit queryInterface() *to* this class -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genQI">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="uuid" select="@uuid" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- emit methods -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="method">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genMethod">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="methodname" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genIface">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wsmap" select="@wsmap" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.math.BigInteger; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.util.List; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($wsmap='struct') and ($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public class ', $ifname, ' { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genStructWrapperJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="extends" select="//interface[@name=$ifname]/@extends" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($extends = '$unknown') or ($extends = '$dispatched') or ($extends = '$errorinfo')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public class ', $ifname, ' extends IUnknown { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$extends]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public class ', $ifname, ' extends ', $extends, ' { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Interface generation: interface "', $ifname, '" has invalid "extends" value ', $extends, '.')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genIfaceWrapper">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- end of class -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'} '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genCb">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filenameimpl" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.math.BigInteger; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.util.List; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public interface ', $ifname, ' { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- emit methods declarations-->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="method">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genCbMethodDecl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="methodname" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'} '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filenameimpl" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.math.BigInteger; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.util.List; </xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="backtype">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="type" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- emit glue methods body -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('class ', $ifname, 'Impl extends nsISupportsBase implements ', $backtype, ' { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public class ', $ifname, 'Impl { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $ifname, ' sink; ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $ifname, 'Impl(', $ifname,' sink) { ')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' this.sink = sink; '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- emit methods implementations -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="method">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genCbMethodImpl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="methodname" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'} '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filenameimpl" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwritten">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Holder.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Holder<T>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public T value;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder(T value)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Holder.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Holder.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Holder<T>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public T value;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder(T value)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Holder.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VBoxException.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VBoxException extends RuntimeException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Throwable wrapped;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private String msg;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public VBoxException(Throwable wrapped, String msg)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Throwable getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return wrapped;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public String getMessage()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return msg;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VBoxException.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwrittenXpcom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackageCom" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class IUnknown
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Object obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IUnknown(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Object getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void setWrapped(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackageCom" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Helper {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Short> wrap(short[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Short> ret = new ArrayList<Short>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (short v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Integer> wrap(int[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Integer> ret = new ArrayList<Integer>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Long> wrap(long[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Long> ret = new ArrayList<Long>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<String> wrap(String[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<String> ret = new ArrayList<String>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrap(Class<T> wrapperClass, T[] thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null || thisPtrs.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T> ret = new ArrayList<T>(thisPtrs.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrapEnum(Class<T> wrapperClass, long values[]) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (values==null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T> c = wrapperClass.getConstructor(int.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T> ret = new ArrayList<T>(values.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long v : values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InstantiationException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<BigInteger> wrapUnsignedLongLong(double vals[]) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<BigInteger> ret = new ArrayList<BigInteger>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (double v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(doubleToBigInteger(v));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static short[] unwrap(List<Short> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new short[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync short[] ret = new short[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (short l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static int[] unwrap(List<Integer> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new int[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int[] ret = new int[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static long[] unwrap(List<Long> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new long[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long[] ret = new long[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static boolean[] unwrap(List<Boolean> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new boolean[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync boolean[] ret = new boolean[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (boolean l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static String[] unwrap(List<String> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new String[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync String[] ret = new String[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T extends Enum <T>> long[] unwrapEnum(Class<T> enumClass, List<T> values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (values == null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long result[] = new long[values.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync java.lang.reflect.Method valueM = enumClass.getMethod("value");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T v : values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync result[i++] = (Integer)valueM.invoke(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return result;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch(SecurityException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalArgumentException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1, T2> List<T1> wrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, T2[] thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null || thisPtrs.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T1> c = wrapperClass1.getConstructor(wrapperClass2);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T1> ret = new ArrayList<T1>(thisPtrs.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T2 thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InstantiationException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> T[] unwrap(Class<T> wrapperClass, List<T> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return (T[])thisPtrs.toArray((T[])Array.newInstance(wrapperClass, thisPtrs.size()));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> T queryInterface(Object obj, String uuid, Class<T> iface)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return (T)queryInterface(obj, uuid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static Object queryInterface(Object obj, String uuid)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync /* Kind of ugly, but does the job of casting */
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync org.mozilla.xpcom.Mozilla moz = org.mozilla.xpcom.Mozilla.getInstance();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long xpobj = moz.wrapJavaObject(obj, uuid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return moz.wrapXPCOMObject(xpobj, uuid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1 extends IUnknown,T2> T2[] unwrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, List<T1> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null || thisPtrs.size() == 0) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync T2 ret[] = (T2[])Array.newInstance(wrapperClass2, thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T1 obj : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = (T2)obj.getWrapped();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync /* We do loose precision here */
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static BigInteger doubleToBigInteger(double val) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new BigInteger(Long.toString((long)val));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static double bigIntegerToDouble(BigInteger val) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VirtualBoxManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Mozilla mozilla;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private IVirtualBox vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private nsIComponentManager componentManager;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private nsIServiceManager servMgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VirtualBoxManager(Mozilla mozilla, nsIServiceManager servMgr)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.componentManager = mozilla.getComponentManager();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.vbox = new IVirtualBox((org.mozilla.interfaces.IVirtualBox) this.componentManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync .createInstanceByContractID("@virtualbox.org/VirtualBox;1",
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync org.mozilla.interfaces.IVirtualBox.IVIRTUALBOX_IID));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Connect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void disconnect()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Disconnect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void initPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void deinitPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IVirtualBox getVBox()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession getSessionObject()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new ISession((org.mozilla.interfaces.ISession) componentManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync .createInstanceByContractID("@virtualbox.org/Session;1", null,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(IMachine m) throws Exception
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync ISession s = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void closeMachineSession(ISession s)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (s != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static VirtualBoxManager mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static synchronized VirtualBoxManager getInstance(String home)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (mgr != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (home == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync File grePath = new File(home);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Mozilla mozilla = Mozilla.getInstance();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync nsIServiceManager servMgr = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync servMgr = mozilla.initXPCOM(grePath, null);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = new VirtualBoxManager(mozilla, servMgr);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IEventListener createListener(Object sink)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new IEventListener(new EventListenerImpl(sink));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void cleanup()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync deinitPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mozilla = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean progressBar(IProgress p, int wait)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long end = System.currentTimeMillis() + wait;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean startVm(String name, String type, int timeout)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync IMachine m = vbox.findMachine(name);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (m == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession session = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (type == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync type = "gui";
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync IProgress p = m.launchVMProcess(session, type, "");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync progressBar(p, timeout);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void waitForEvents(long tmo)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'EventListenerImpl.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public class EventListenerImpl extends nsISupportsBase implements org.mozilla.interfaces.IEventListener
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Object obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private java.lang.reflect.Method handleEvent;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync EventListenerImpl(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.handleEvent = obj.getClass().getMethod("handleEvent", IEvent.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void handleEvent(org.mozilla.interfaces.IEvent ev)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (obj != null && handleEvent != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync handleEvent.invoke(obj, ev != null ? new IEvent(ev) : null);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'EventListenerImpl.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VBoxObjectBase.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncabstract class nsISupportsBase implements org.mozilla.interfaces.nsISupports
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public org.mozilla.interfaces.nsISupports queryInterface(String iid)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return org.mozilla.xpcom.Mozilla.queryInterface(this, iid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text><xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VBoxObjectBase.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwrittenMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackageCom" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class IUnknown
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Object obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IUnknown(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Object getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void setWrapped(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackageCom" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Helper {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Short> wrap(short[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Short> ret = new ArrayList<Short>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (short v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Integer> wrap(int[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals == null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Integer> ret = new ArrayList<Integer>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Long> wrap(long[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Long> ret = new ArrayList<Long>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<String> wrap(String[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<String> ret = new ArrayList<String>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> T wrapDispatch(Class<T> wrapperClass, Dispatch d)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (d == null || d.m_pDispatch == 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T> c = wrapperClass.getConstructor(Dispatch.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InstantiationException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> Object wrapVariant(Class<T> wrapperClass, Variant v)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (v == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync short vt = v.getvt();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync switch (vt)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return wrapDispatch(wrapperClass, v.getDispatch());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("unhandled variant type "+vt);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrap(Class<T> wrapperClass, SafeArray sa) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (sa==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (saLen == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T> ret = new ArrayList<T>(saLen);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int i = sa.getLBound(); i <= sa.getUBound(); i++)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Variant v = sa.getVariant(i);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add((T)wrapVariant(wrapperClass, v));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrapEnum(Class<T> wrapperClass, SafeArray sa) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (sa==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (saLen == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T> ret = new ArrayList<T>(saLen);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T> c = wrapperClass.getConstructor(int.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int i = sa.getLBound(); i <= sa.getUBound(); i++)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Variant v = sa.getVariant(i);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InstantiationException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static SafeArray unwrapInt(List<Integer> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray ret = new SafeArray(Variant.VariantInt, vals.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static SafeArray unwrapLong(List<Long> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray ret = new SafeArray(Variant.VariantLongInt, vals.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static SafeArray unwrapBool(List<Boolean> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray result = new SafeArray(Variant.VariantBoolean, vals.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (boolean l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return result;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T extends Enum <T>> SafeArray unwrapEnum(Class<T> enumClass, List<T> values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (values == null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray result = new SafeArray(Variant.VariantInt, values.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync java.lang.reflect.Method valueM = enumClass.getMethod("value");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T v : values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return result;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch(SecurityException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalArgumentException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static SafeArray unwrapString(List<String> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray result = new SafeArray(Variant.VariantString, vals.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return result;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1, T2> List<T1> wrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, T2[] thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T1> c = wrapperClass1.getConstructor(wrapperClass2);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T1> ret = new ArrayList<T1>(thisPtrs.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T2 thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InstantiationException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> T[] unwrap(Class<T> wrapperClass, List<T> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return (T[])thisPtrs.toArray((T[])Array.newInstance(wrapperClass, thisPtrs.size()));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1 extends IUnknown,T2> T2[] unwrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, List<T1> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync T2 ret[] = (T2[])Array.newInstance(wrapperClass2, thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T1 obj : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = (T2)obj.getWrapped();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static BigInteger longToBigInteger(long value) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync /* We have very long invoke lists sometimes */
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static Variant invoke(Dispatch d, String method, Object ... args)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return Dispatch.callN(d, method, args);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VirtualBoxManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private IVirtualBox vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VirtualBoxManager()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync initPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync vbox = new IVirtualBox(new ActiveXComponent("VirtualBox.VirtualBox"));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void initPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void deinitPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Connect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void disconnect()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Disconnect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IVirtualBox getVBox()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession getSessionObject()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new ISession(new ActiveXComponent("VirtualBox.Session"));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(String mid) throws Exception
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession s = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e1) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync closeMachineSession(s);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(IMachine m) throws Exception
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return openMachineSession(m.getId());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void closeMachineSession(ISession s)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (s != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static VirtualBoxManager mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static synchronized VirtualBoxManager getInstance(String home)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (mgr != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (home == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = new VirtualBoxManager();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void cleanup()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync deinitPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean progressBar(IProgress p, int wait)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long end = System.currentTimeMillis() + wait;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean startVm(String name, String type, int timeout)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync IMachine m = vbox.findMachine(name);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (m == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession session = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync String mid = m.getId();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (type == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync type = "gui";
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync IProgress p = vbox.openRemoteSession(session, mid, type, "");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync progressBar(p, timeout);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void waitForEvents(long tmo)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // what to do here?
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InterruptedException ie) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwrittenJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackageCom" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class IUnknown
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync protected String obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync protected final VboxPortType port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IUnknown(String obj, VboxPortType port)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public final String getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public final VboxPortType getRemoteWSPort()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public synchronized void releaseRemote() throws WebServiceException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (obj == null) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvalidObjectFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new WebServiceException(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (RuntimeFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new WebServiceException(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackageCom" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Helper {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrap(Class<T> wrapperClass, VboxPortType pt, List<String> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if(thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T> c = wrapperClass.getConstructor(String.class, VboxPortType.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T> ret = new ArrayList<T>(thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InstantiationException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1, T2> List<T1> wrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, VboxPortType pt, List<T2> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if(thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T1> c = wrapperClass1.getConstructor(wrapperClass2, VboxPortType.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T1> ret = new ArrayList<T1>(thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T2 thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InstantiationException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T extends IUnknown> List<String> unwrap(List<T> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<String> ret = new ArrayList<String>(thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T obj : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1 extends Enum <T1>, T2 extends Enum <T2>> List<T2> convertEnums(Class<T1> fromClass,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Class<T2> toClass,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T1> values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (values==null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync java.lang.reflect.Method fromValue = toClass.getMethod("fromValue", String.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T2> ret = new ArrayList<T2>(values.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T1 v : values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // static method is called with null this
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (NoSuchMethodException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (IllegalAccessException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvocationTargetException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new AssertionError(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="package" select="$G_virtualBoxPackage" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncclass PortPool
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private final static String wsdlFile = <xsl:value-of select="$G_virtualBoxWsdl" />;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncprivate Map<VboxPortType, Integer> known;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private boolean initStarted;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VboxService svc;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync PortPool(boolean usePreinit)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known = new HashMap<VboxPortType, Integer>();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (usePreinit)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync new Thread(new Runnable()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void run()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // need to sync on something else but 'this'
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized (known)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync initStarted = true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }).start();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized (known)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync while (!initStarted)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InterruptedException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private synchronized void preinit()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync VboxPortType port = getPort();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync releasePort(port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized VboxPortType getPort()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync VboxPortType port = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int ttl = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (VboxPortType cur: known.keySet())
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int value = known.get(cur);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if ((value & 0x10000) == 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync port = cur;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ttl = value & 0xffff;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (port == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (svc == null) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync URL wsdl = PortPool.class.getClassLoader().getResource(wsdlFile);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (wsdl == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new LinkageError(wsdlFile+" not found, but it should have been in the jar");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync svc = new VboxService(wsdl,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync "vboxService"));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // reuse this object 0x10 times
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ttl = 0x10;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // mark as used
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known.put(port, new Integer(0x10000 | ttl));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized void releasePort(VboxPortType port)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Integer val = known.get(port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (val == null || val == 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // know you not
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int v = val;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int ttl = v & 0xffff;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // decrement TTL, and throw away port if used too much times
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (--ttl <= 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync v = ttl; // set new TTL and clear busy bit
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VirtualBoxManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static PortPool pool = new PortPool(true);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync protected VboxPortType port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private IVirtualBox vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VirtualBoxManager()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void initPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void deinitPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getRequestContext().
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync String handle = port.iWebsessionManagerLogon(username, passwd);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.vbox = new IVirtualBox(handle, port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Throwable t) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // we have to throw smth derived from RuntimeException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(t, t.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Map<String, Object> requestContext, Map<String, Object> responseContext)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getRequestContext();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (requestContext != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getRequestContext().putAll(requestContext);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (responseContext != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getResponseContext().putAll(responseContext);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getRequestContext().
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync String handle = port.iWebsessionManagerLogon(username, passwd);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.vbox = new IVirtualBox(handle, port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Throwable t) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // we have to throw smth derived from RuntimeException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(t, t.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void disconnect()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync port.iWebsessionManagerLogoff(this.vbox.getWrapped());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvalidObjectFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(e, e.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (RuntimeFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(e, e.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } finally {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (this.port != null) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IVirtualBox getVBox()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession getSessionObject()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("connect first");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync String handle = port.iWebsessionManagerGetSessionObject(this.vbox.getWrapped());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new ISession(handle, port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvalidObjectFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(e, e.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (RuntimeFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(e, e.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(IMachine m) throws Exception
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync ISession s = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void closeMachineSession(ISession s)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (s != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static VirtualBoxManager mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static synchronized VirtualBoxManager getInstance(String home)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (mgr != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = new VirtualBoxManager();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IEventListener createListener(Object sink)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("no active listeners here");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void cleanup()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync deinitPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean progressBar(IProgress p, int wait)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long end = System.currentTimeMillis() + wait;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean startVm(String name, String type, int timeout)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync IMachine m = vbox.findMachine(name);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (m == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession session = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (type == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync type = "gui";
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync IProgress p = m.launchVMProcess(session, type, "");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync progressBar(p, timeout);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void waitForEvents(long tmo)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template match="/">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not($G_vboxApiSuffix)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'G_vboxApiSuffix must be given'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Handwritten files -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwritten"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwrittenXpcom"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwrittenMscom"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwrittenJaxws"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="'Style unknown (root)'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Enums -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="//enum">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genEnum">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="enumname" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="filename" select="concat(@name, '.java')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Interfaces -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="//interface">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="self_target" select="current()/ancestor::if/@target"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="module" select="current()/ancestor::module/@name"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not($module) and not(@wsmap='suppress') and not(@wsmap='global')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genIface">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="filename" select="concat(@name, '.java')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- We don't need WSDL-specific interfaces here -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not($self_target='wsdl') and not($module)">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genIface">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="@name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="filename" select="concat(@name, '.java')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:stylesheet>