glue-java.xsl revision 194a8ad893b721dfc22ac5f955671f09db015a3f
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:stylesheet version = '1.0'
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync xmlns:vbox="http://www.virtualbox.org/"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync xmlns:exsl="http://exslt.org/common"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync extension-element-prefixes="exsl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!--
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync glue-java.xsl:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync XSLT stylesheet that generates Java glue code for XPCOM, MSCOM and JAX-WS from
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync VirtualBox.xidl.
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Copyright (C) 2010 Oracle Corporation
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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-->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:output
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync method="text"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync version="1.0"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync encoding="utf-8"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync indent="no"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- - - - - - - - - - - - - - - - - - - - - - -
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync global XSLT variables
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync - - - - - - - - - - - - - - - - - - - - - - -->
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('&quot;vboxwebService',$G_vboxApiSuffix), '.wsdl&quot;')" />
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:include href="../webservice/websrv-shared.inc.xsl" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="fileheader">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="name" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>/**
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync * Copyright (C) 2010 Oracle Corporation
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync *
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 *
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' * ',$name)"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync *
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 * Generator: src/VBox/Main/glue/glue-java.xsl
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync */
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="startFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="file" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="package" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('&#10;// ##### BEGINFILE &quot;', $file, '&quot;&#10;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fileheader">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="name" select="$file" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('package ',$package,';&#10;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('import ',$G_virtualBoxPackageCom,'.*;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'import org.mozilla.interfaces.*;&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'import com.jacob.com.*;&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'import com.jacob.activeX.ActiveXComponent;&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" 'import javax.xml.ws.*;&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="file" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('&#10;// ##### ENDFILE &quot;', $file, '&quot;&#10;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genEnum">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="enumname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public enum ', $enumname, ' {&#10;&#10;')" />
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>,&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> private final int value;&#10;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $enumname, '(int v) {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> value = v;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> }&#10;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> public int value() {&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> return value;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> }&#10;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public static ', $enumname, ' fromValue(long v) {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' for (', $enumname, ' c: ', $enumname, '.values()) {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> if (c.value == (int)v) {&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> return c;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> }&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> }&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> throw new IllegalArgumentException(Long.toString(v));&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text> }&#10;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public static ', $enumname, ' fromValue(String v) {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return valueOf(',$enumname, '.class, v);&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>}&#10;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="startExcWrapper">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' try {&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="endExcWrapper">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (org.mozilla.xpcom.XPCOMException e) {&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage());&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (com.jacob.com.ComException e) {&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage());&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (InvalidObjectFaultMsg e) {&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage());&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' } catch (RuntimeFaultMsg e) {&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' throw new VBoxException(e, e.getMessage());&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="wrappedName">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('org.mozilla.interfaces.',$ifname)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'com.jacob.com.Dispatch'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 &quot;', $name, '&quot; is not supported.')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="typeIdl2Glue">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="forceelem" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="needarray" select="($safearray='yes') and not($forceelem='yes')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'List&lt;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'&gt;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!--
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync typeIdl2Back: converts $type into a type as used by the backend.
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="typeIdl2Back">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="type" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="forceelem" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="needarray" select="($safearray='yes') and not($forceelem='yes')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'int'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'int'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='octet'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'boolean'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'nsISupports'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='wstring'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='uuid'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$type]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'[]'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='mscom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Variant'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'List&lt;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='$unknown'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$type]/@wsmap='managed'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$type]/@wsmap='struct'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($G_virtualBoxPackageCom, '.', $type)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$type]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($G_virtualBoxPackageCom, '.', $type)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'BigInteger'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Long'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Integer'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='unsigned short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Integer'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='octet'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Short'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'Boolean'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='wstring'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$type='uuid'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'String'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$needarray">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'&gt;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookOutParamMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//enum[@name=$idltype]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($gluetype,'.fromValue(', $value,'.getInt())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='wstring'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getString()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='uuid'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getString()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='boolean'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.toBoolean()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(int)', $value,'.getShort()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='short'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getShort()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getInt()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('(long)', $value,'.getInt()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getInt()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat($value,'.getLong()')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.longToBigInteger(',$value,'.getLong())')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookOutParamJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="isstruct"
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync select="//interface[@name=$idltype]/@wsmap='struct'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$idltype='unsigned long long'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.bigIntegerToDouble(', $value,')')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="cookInParamMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="idltype"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="safearray"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="$value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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:if>
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="@dir='out'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="@safearray='yes'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'null, '" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
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:if>
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, '&quot;.')" />
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="');&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('Helper.invoke(getTypedWrapped(), &quot;', $methodname, '&quot; ')"/>
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="');&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:variable>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="paramsinout" select="param[@dir='in' or @dir='out']" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('port.', $jaxwsmethod, '(', $portArg)" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="$paramsinout and not($portArg='')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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:if>
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="');&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="');&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backtype, ' ', $retval,' = Dispatch.get(getTypedWrapped(), &quot;', @name,'&quot;);&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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);&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genSetterCall">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="settername"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="value"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' getTypedWrapped().', $settername, '(', $value,');&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' Dispatch.put(getTypedWrapped(), &quot;', @name,'&quot;, ',$value, ');&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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,');&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genStructWrapperJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' private ', $G_virtualBoxPackageCom,'.',$ifname, ' real;&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' private VboxPortType port;&#10;&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $ifname, '(', $G_virtualBoxPackageCom,'.',$ifname,' real, VboxPortType port) {&#10; this.real = real; &#10; this.port = port; &#10; }&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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 </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $gluegettertype, ' ', $gluegettername, '() {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backgettertype, ' retVal = real.', $backgettername, '();&#10;')" />
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, ';&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- Interface method wrapper -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genMethod">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="methodname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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&lt;', $paramgluetype, '&gt; ', @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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="') {&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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);&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' Variant tmp_', @name, ' = new Variant();&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' javax.xml.ws.Holder&lt;', $backouttype,'&gt; tmp_', @name, ' = new javax.xml.ws.Holder&lt;', $backouttype,'&gt;();&#10;')"/>
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
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&lt;', $backrettype, '&gt;',
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ' retVal = new javax.xml.ws.Holder&lt;', $backrettype,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync '&gt;();&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $backrettype, ' retVal;&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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,';&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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, ';&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' }&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- Callback interface method -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genCbMethodDecl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="methodname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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&lt;', $paramgluetype, '&gt; ', @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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="');&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- queryInterface wrapper -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genQI">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="uuid" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public static ', $ifname, ' queryInterface(IUnknown obj) {&#10;')" />
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;&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' if (nsobj == null) return null;&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ',$backtype, ' qiobj = Helper.queryInterface(nsobj, &quot;{',$uuid,'}&quot;, ',$backtype,'.class);&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return qiobj == null ? null : new ', $ifname, '(qiobj);&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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());&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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());&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genCbMethodImpl">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="methodname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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:if>
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="') {&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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="') {&#10;'"/>
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),'];&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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&lt;', $glueouttype, '&gt; tmp_', @name, ' = new Holder&lt;', $glueouttype, '&gt;();&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 = &#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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, '&quot;.')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:if test="not(position()=last())">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="', '"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="');&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- return out params -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:for-each select="param[@dir='out']">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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,';&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' _args[',count(preceding-sibling::param),'] = ',$unwrapped,';&#10;')"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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, ';&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' }&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<!-- Interface method -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genIfaceWrapper">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Constructor -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $ifname, '(String wrapped, VboxPortType port) {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' super(wrapped, port);&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' }&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($G_vboxGlueStyle='xpcom') or ($G_vboxGlueStyle='mscom')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $ifname, '(', $wrappedType,' wrapped) {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' super(wrapped);&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' }&#10;'"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Typed wrapped object accessor -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' public ', $wrappedType, ' getTypedWrapped() {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return (', $wrappedType, ') getWrapped();&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select=" ' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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, '&#10;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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, '() {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="startExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' return ', $wrapped, ';&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endExcWrapper"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select= "' }&#10;'" />
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) {&#10;')" />
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= "' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genIface">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:variable name="wsmap" select="@wsmap" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.math.BigInteger;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.util.List;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="($wsmap='struct') and ($G_vboxGlueStyle='jaxws')">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public class ', $ifname, ' {&#10;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="genStructWrapperJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="ifname" select="$ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 {&#10;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="//interface[@name=$extends]">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public class ', $ifname, ' extends ', $extends, ' {&#10;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="fatalError">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="msg" select="concat('Interface generation: interface &quot;', $ifname, '&quot; has invalid &quot;extends&quot; 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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- end of class -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'}&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="genCb">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="ifname" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:param name="filenameimpl" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.math.BigInteger;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.util.List;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public interface ', $ifname, ' {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'}&#10;&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filename" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.math.BigInteger;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text>import java.util.List;&#10;</xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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, ' {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat('public class ', $ifname, 'Impl {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $ifname, ' sink;&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="concat(' ', $ifname, 'Impl(', $ifname,' sink) {&#10;')" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' this.sink = sink;&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="' }&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:value-of select="'}&#10;&#10;'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="$filenameimpl" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwritten">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Holder<T>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public T value;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder(T value)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.value = value;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Holder.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Holder<T>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public T value;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Holder(T value)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.value = value;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Holder.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VBoxException extends RuntimeException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Throwable wrapped;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private String msg;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public VBoxException(Throwable wrapped, String msg)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.wrapped = wrapped;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.msg = msg;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Throwable getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return wrapped;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public String getMessage()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return msg;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VBoxException.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwrittenXpcom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class IUnknown
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Object obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IUnknown(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.obj = obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Object getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return this.obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void setWrapped(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.obj = obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.List;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.ArrayList;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.Collections;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.Array;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.Constructor;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.InvocationTargetException;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.math.BigInteger;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Helper {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Short> wrap(short[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Short> ret = new ArrayList<Short>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (short v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Integer> wrap(int[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Integer> ret = new ArrayList<Integer>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Long> wrap(long[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Long> ret = new ArrayList<Long>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<String> wrap(String[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<String> ret = new ArrayList<String>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrap(Class<T> wrapperClass, T[] thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null || thisPtrs.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T> ret = new ArrayList<T>(thisPtrs.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(thisPtr);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrapEnum(Class<T> wrapperClass, long values[]) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
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 ret.add(c.newInstance(v));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static short[] unwrap(List<Short> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new short[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync short[] ret = new short[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (short l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static int[] unwrap(List<Integer> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new int[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int[] ret = new int[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static long[] unwrap(List<Long> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new long[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long[] ret = new long[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static boolean[] unwrap(List<Boolean> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new boolean[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync boolean[] ret = new boolean[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (boolean l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static String[] unwrap(List<String> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null || vals.size() == 0) return new String[0];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync String[] ret = new String[vals.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = l;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T extends Enum <T>> long[] unwrapEnum(Class<T> enumClass, List<T> values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (values == null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long result[] = new long[values.size()];
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync java.lang.reflect.Method valueM = enumClass.getMethod("value");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T v : values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync result[i++] = (Integer)valueM.invoke(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1, T2> List<T1> wrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, T2[] thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null || thisPtrs.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T1> c = wrapperClass1.getConstructor(wrapperClass2);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T1> ret = new ArrayList<T1>(thisPtrs.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T2 thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(c.newInstance(thisPtr));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> T[] unwrap(Class<T> wrapperClass, List<T> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs.size() == 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return (T[])thisPtrs.toArray((T[])Array.newInstance(wrapperClass, thisPtrs.size()));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> T queryInterface(Object obj, String uuid, Class<T> iface)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return (T)queryInterface(obj, uuid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static Object queryInterface(Object obj, String uuid)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync T2 ret[] = (T2[])Array.newInstance(wrapperClass2, thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T1 obj : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = (T2)obj.getWrapped();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync /* We do loose precision here */
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static BigInteger doubleToBigInteger(double val) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new BigInteger(Long.toString((long)val));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static double bigIntegerToDouble(BigInteger val) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return val.doubleValue();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.io.File;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport org.mozilla.xpcom.*;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport org.mozilla.interfaces.*;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VirtualBoxManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Mozilla mozilla;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private IVirtualBox vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private nsIComponentManager componentManager;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private nsIServiceManager servMgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VirtualBoxManager(Mozilla mozilla, nsIServiceManager servMgr)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.mozilla = mozilla;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.servMgr = servMgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.componentManager = mozilla.getComponentManager();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.vbox = new IVirtualBox((org.mozilla.interfaces.IVirtualBox) this.componentManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync .createInstanceByContractID("@virtualbox.org/VirtualBox;1",
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync null,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync org.mozilla.interfaces.IVirtualBox.IVIRTUALBOX_IID));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Connect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void disconnect()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Disconnect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void initPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void deinitPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IVirtualBox getVBox()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return this.vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession getSessionObject()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new ISession((org.mozilla.interfaces.ISession) componentManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync .createInstanceByContractID("@virtualbox.org/Session;1", null,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync org.mozilla.interfaces.ISession.ISESSION_IID));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(IMachine m) throws Exception
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync ISession s = getSessionObject();
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync m.lockForSession(s, true /* fPermitShared */);
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync return s;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void closeMachineSession(ISession s)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (s != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync s.close();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static VirtualBoxManager mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static synchronized VirtualBoxManager getInstance(String home)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (mgr != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (home == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync home = System.getProperty("vbox.home");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync File grePath = new File(home);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Mozilla mozilla = Mozilla.getInstance();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mozilla.initialize(grePath);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync nsIServiceManager servMgr = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync servMgr = mozilla.initXPCOM(grePath, null);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync e.printStackTrace();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = new VirtualBoxManager(mozilla, servMgr);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IEventListener createListener(Object sink)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new IEventListener(new EventListenerImpl(sink));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void cleanup()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync deinitPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // cleanup
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mozilla.shutdownXPCOM(servMgr);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mozilla = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean progressBar(IProgress p, int wait)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long end = System.currentTimeMillis() + wait;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync while (!p.getCompleted())
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mozilla.waitForEvents(0);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync p.waitForCompletion(wait);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (System.currentTimeMillis() >= end)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean startVm(String name, String type, int timeout)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync IMachine m = vbox.findMachine(name);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (m == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession session = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (type == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync type = "gui";
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync IProgress p = m.launchVMProcess(session, type, "");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync progressBar(p, timeout);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync session.close();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void waitForEvents(long tmo)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mozilla.waitForEvents(tmo);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync import org.mozilla.interfaces.*;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public class EventListenerImpl extends nsISupportsBase implements org.mozilla.interfaces.IEventListener
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Object obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private java.lang.reflect.Method handleEvent;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync EventListenerImpl(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.obj = obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.handleEvent = obj.getClass().getMethod("handleEvent", IEvent.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync e.printStackTrace();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void handleEvent(org.mozilla.interfaces.IEvent ev)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (obj != null && handleEvent != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync handleEvent.invoke(obj, ev != null ? new IEvent(ev) : null);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync e.printStackTrace();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'EventListenerImpl.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncabstract class nsISupportsBase implements org.mozilla.interfaces.nsISupports
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public org.mozilla.interfaces.nsISupports queryInterface(String iid)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return org.mozilla.xpcom.Mozilla.queryInterface(this, iid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text><xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VBoxObjectBase.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwrittenMscom">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class IUnknown
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private Object obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IUnknown(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.obj = obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public Object getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return this.obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void setWrapped(Object obj)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.obj = obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.List;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.ArrayList;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.Collections;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.Array;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.Constructor;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.InvocationTargetException;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.math.BigInteger;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport com.jacob.com.*;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Short> ret = new ArrayList<Short>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (short v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Integer> wrap(int[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals == null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Integer> ret = new ArrayList<Integer>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<Long> wrap(long[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<Long> ret = new ArrayList<Long>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static List<String> wrap(String[] vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<String> ret = new ArrayList<String>(vals.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String v : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> T wrapDispatch(Class<T> wrapperClass, Dispatch d)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (d == null || d.m_pDispatch == 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T> c = wrapperClass.getConstructor(Dispatch.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return (T)c.newInstance(d);
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> Object wrapVariant(Class<T> wrapperClass, Variant v)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (v == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync short vt = v.getvt();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync switch (vt)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantNull:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantBoolean:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return v.getBoolean();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantByte:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return v.getByte();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantShort:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return v.getShort();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantInt:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return v.getInt();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantLongInt:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return v.getLong();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantString:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return v.getString();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync case Variant.VariantDispatch:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return wrapDispatch(wrapperClass, v.getDispatch());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync default:
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("unhandled variant type "+vt);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrap(Class<T> wrapperClass, SafeArray sa) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (sa==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int saLen = sa.getUBound() - sa.getLBound() + 1;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (saLen == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T> ret = new ArrayList<T>(saLen);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int i = sa.getLBound(); i <= sa.getUBound(); i++)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Variant v = sa.getVariant(i);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add((T)wrapVariant(wrapperClass, v));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrapEnum(Class<T> wrapperClass, SafeArray sa) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (sa==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int saLen = sa.getUBound() - sa.getLBound() + 1;
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 {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Variant v = sa.getVariant(i);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(c.newInstance(v.getInt()));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static SafeArray unwrapInt(List<Integer> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray ret = new SafeArray(Variant.VariantInt, vals.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (int l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.setInt(i++, l);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static SafeArray unwrapLong(List<Long> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray ret = new SafeArray(Variant.VariantLongInt, vals.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (long l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.setLong(i++, l);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static SafeArray unwrapBool(List<Boolean> vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (vals==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray result = new SafeArray(Variant.VariantBoolean, vals.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (boolean l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync result.setBoolean(i, l);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return result;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T extends Enum <T>> SafeArray unwrapEnum(Class<T> enumClass, List<T> values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (values == null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync SafeArray result = new SafeArray(Variant.VariantInt, values.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync java.lang.reflect.Method valueM = enumClass.getMethod("value");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T v : values) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync result.setInt(i, (Integer)valueM.invoke(v));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (String l : vals) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync result.setString(i, l);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return result;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1, T2> List<T1> wrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, T2[] thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs.length == 0) return Collections.emptyList();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T1> c = wrapperClass1.getConstructor(wrapperClass2);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T1> ret = new ArrayList<T1>(thisPtrs.length);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T2 thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(c.newInstance(thisPtr));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync T2 ret[] = (T2[])Array.newInstance(wrapperClass2, thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int i = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T1 obj : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret[i++] = (T2)obj.getWrapped();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static BigInteger longToBigInteger(long value) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return BigInteger.valueOf(value);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync /* We have very long invoke lists sometimes */
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static Variant invoke(Dispatch d, String method, Object ... args)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return Dispatch.callN(d, method, args);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport com.jacob.activeX.ActiveXComponent;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport com.jacob.com.ComThread;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport com.jacob.com.Dispatch;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport com.jacob.com.Variant;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport com.jacob.com.SafeArray;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport com.jacob.com.DispatchEvents;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VirtualBoxManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private IVirtualBox vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VirtualBoxManager()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync initPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync vbox = new IVirtualBox(new ActiveXComponent("VirtualBox.VirtualBox"));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void initPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ComThread.InitMTA();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void deinitPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ComThread.Release();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Connect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void disconnect()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("Disconnect doesn't make sense for local bindings");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IVirtualBox getVBox()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return this.vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession getSessionObject()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return new ISession(new ActiveXComponent("VirtualBox.Session"));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(String mid) throws Exception
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession s = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.vbox.openExistingSession(s, mid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return s;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.vbox.openSession(s, mid);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return s;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (Exception e1) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync closeMachineSession(s);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw e1;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(IMachine m) throws Exception
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return openMachineSession(m.getId());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void closeMachineSession(ISession s)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (s != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync s.close();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static VirtualBoxManager mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static synchronized VirtualBoxManager getInstance(String home)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (mgr != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (home == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync home = System.getProperty("vbox.home");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = new VirtualBoxManager();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void cleanup()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync deinitPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean progressBar(IProgress p, int wait)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long end = System.currentTimeMillis() + wait;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync while (!p.getCompleted())
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync p.waitForCompletion(wait);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (System.currentTimeMillis() >= end)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean startVm(String name, String type, int timeout)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync IMachine m = vbox.findMachine(name);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (m == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession session = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 session.close();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void waitForEvents(long tmo)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // what to do here?
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Thread.sleep(tmo);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InterruptedException ie) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template name="emitHandwrittenJaxws">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class IUnknown
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync protected String obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync protected final VboxPortType port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IUnknown(String obj, VboxPortType port)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.obj = obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.port = port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public final String getWrapped()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return this.obj;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public final VboxPortType getRemoteWSPort()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return this.port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public synchronized void releaseRemote() throws WebServiceException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (obj == null) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.port.iManagedObjectRefRelease(obj);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.obj = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InvalidObjectFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new WebServiceException(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (RuntimeFaultMsg e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new WebServiceException(e);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'IUnknown.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.List;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.ArrayList;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.Collections;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.Array;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.Constructor;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.lang.reflect.InvocationTargetException;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.math.BigInteger;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class Helper {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T> List<T> wrap(Class<T> wrapperClass, VboxPortType pt, List<String> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if(thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 ret.add(c.newInstance(thisPtr,pt));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T1, T2> List<T1> wrap2(Class<T1> wrapperClass1, Class<T2> wrapperClass2, VboxPortType pt, List<T2> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if(thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Constructor<T1> c = wrapperClass1.getConstructor(wrapperClass2, VboxPortType.class);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<T1> ret = new ArrayList<T1>(thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T2 thisPtr : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(c.newInstance(thisPtr,pt));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static <T extends IUnknown> List<String> unwrap(List<T> thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (thisPtrs==null) return null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync List<String> ret = new ArrayList<String>(thisPtrs.size());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (T obj : thisPtrs) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ret.add(obj.getWrapped());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return ret;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 try {
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 ret.add((T2)fromValue.invoke(null, v.name()));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'Helper.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.net.URL;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.math.BigInteger;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.List;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.Map;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport java.util.HashMap;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport javax.xml.namespace.QName;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport javax.xml.ws.BindingProvider;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport javax.xml.ws.Holder;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncimport javax.xml.ws.WebServiceException;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncclass PortPool
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private final static String wsdlFile = <xsl:value-of select="$G_virtualBoxWsdl" />;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:text><![CDATA[
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncprivate Map<VboxPortType, Integer> known;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private boolean initStarted;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VboxService svc;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync PortPool(boolean usePreinit)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known = new HashMap<VboxPortType, Integer>();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (usePreinit)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync new Thread(new Runnable()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void run()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // need to sync on something else but 'this'
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized (known)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync initStarted = true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known.notify();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync preinit();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }).start();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized (known)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync while (!initStarted)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known.wait();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync } catch (InterruptedException e) {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync break;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private synchronized void preinit()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync VboxPortType port = getPort();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync releasePort(port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized VboxPortType getPort()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync VboxPortType port = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int ttl = 0;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync for (VboxPortType cur: known.keySet())
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync int value = known.get(cur);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if ((value & 0x10000) == 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync port = cur;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ttl = value & 0xffff;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync break;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (port == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
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 new QName("http://www.virtualbox.org/Service",
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync "vboxService"));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync port = svc.getVboxServicePort();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // reuse this object 0x10 times
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ttl = 0x10;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // mark as used
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known.put(port, new Integer(0x10000 | ttl));
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync synchronized void releasePort(VboxPortType port)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Integer val = known.get(port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (val == null || val == 0)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // know you not
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known.remove(port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync else
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync v = ttl; // set new TTL and clear busy bit
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync known.put(port, v);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsyncpublic class VirtualBoxManager
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync{
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static PortPool pool = new PortPool(true);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync protected VboxPortType port;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private IVirtualBox vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private VirtualBoxManager()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void initPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static void deinitPerThread()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.port = pool.getPort();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
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 if (this.port != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync pool.releasePort(this.port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // we have to throw smth derived from RuntimeException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(t, t.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void connect(String url, String username, String passwd,
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync Map<String, Object> requestContext, Map<String, Object> responseContext)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.port = pool.getPort();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getRequestContext();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (requestContext != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getRequestContext().putAll(requestContext);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (responseContext != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ((BindingProvider)port).getResponseContext().putAll(responseContext);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 if (this.port != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync pool.releasePort(port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync // we have to throw smth derived from RuntimeException
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new VBoxException(t, t.getMessage());
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void disconnect()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (this.vbox != null)
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 pool.releasePort(this.port);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync this.port = null;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IVirtualBox getVBox()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return this.vbox;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession getSessionObject()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (this.vbox == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("connect first");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync try {
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 }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public ISession openMachineSession(IMachine m) throws Exception
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync ISession s = getSessionObject();
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync m.lockForSession(s, true /* fPermitShared */ );
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync return s;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void closeMachineSession(ISession s)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (s != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync s.close();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync private static VirtualBoxManager mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public static synchronized VirtualBoxManager getInstance(String home)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (mgr != null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync mgr = new VirtualBoxManager();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return mgr;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public IEventListener createListener(Object sink)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync throw new RuntimeException("no active listeners here");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void cleanup()
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync deinitPerThread();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean progressBar(IProgress p, int wait)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync long end = System.currentTimeMillis() + wait;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync while (!p.getCompleted())
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync p.waitForCompletion(wait);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (System.currentTimeMillis() >= end)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public boolean startVm(String name, String type, int timeout)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync IMachine m = vbox.findMachine(name);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (m == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return false;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync ISession session = getSessionObject();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync if (type == null)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync type = "gui";
194a8ad893b721dfc22ac5f955671f09db015a3fvboxsync IProgress p = m.launchVMProcess(session, type, "");
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync progressBar(p, timeout);
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync session.close();
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync return true;
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync public void waitForEvents(long tmo)
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync {
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync }
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync}
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync]]></xsl:text>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="endFile">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:with-param name="file" select="'VirtualBoxManager.java'" />
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:call-template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync<xsl:template match="/">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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 </xsl:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <!-- Handwritten files -->
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwritten"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='xpcom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwrittenXpcom"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='mscom'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwrittenMscom"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:when test="$G_vboxGlueStyle='jaxws'">
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync <xsl:call-template name="emitHandwrittenJaxws"/>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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
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
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
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:when>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
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:if>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:otherwise>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:choose>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync </xsl:for-each>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:template>
1f1c37d7ffc2ad3691d79dab619d2198d2d9671avboxsync</xsl:stylesheet>