diff options
Diffstat (limited to 'dotnet/Qpid.Common/stylesheets')
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/csharp.xsl | 251 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/framing.xsl | 65 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/java.xsl | 230 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/prepare1.xsl | 109 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/prepare2.xsl | 68 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/prepare3.xsl | 64 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/readme.txt | 52 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/registry.xsl | 33 | ||||
-rw-r--r-- | dotnet/Qpid.Common/stylesheets/utils.xsl | 185 |
9 files changed, 0 insertions, 1057 deletions
diff --git a/dotnet/Qpid.Common/stylesheets/csharp.xsl b/dotnet/Qpid.Common/stylesheets/csharp.xsl deleted file mode 100644 index ed04a40403..0000000000 --- a/dotnet/Qpid.Common/stylesheets/csharp.xsl +++ /dev/null @@ -1,251 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<!-- this class contains the templates for generating C# source code for a given framing model --> -<xsl:import href="utils.xsl"/> -<xsl:output method="text" indent="yes" name="textFormat"/> - -<xsl:param name="registry_name"/> - -<xsl:template match="/"> - <xsl:apply-templates mode="generate-multi" select="frames"/> - <xsl:apply-templates mode="generate-registry" select="frames"/> -</xsl:template> - -<!-- processes all frames outputting the classes in a single stream --> -<!-- (useful for debugging etc) --> -<xsl:template match="frame" mode="generate-single"> - <xsl:call-template name="generate-class"> - <xsl:with-param name="f" select="."/> - </xsl:call-template> -</xsl:template> - -<!-- generates seperate file for each class/frame --> -<xsl:template match="frame" mode="generate-multi"> - <xsl:variable name="uri" select="concat(@name, '.cs')"/> - wrote <xsl:value-of select="$uri"/> - <xsl:result-document href="{$uri}" format="textFormat"> - <xsl:call-template name="generate-class"> - <xsl:with-param name="f" select="."/> - </xsl:call-template> - </xsl:result-document> -</xsl:template> - -<!-- main class generation template --> -<xsl:template name="generate-class"> - <xsl:param name="f"/> -using Apache.Qpid.Buffer; -using System.Text; - -namespace Apache.Qpid.Framing -{ - /// - /// <summary>This class is autogenerated - /// Do not modify. - ///</summary> - /// @author Code Generator Script by robert.j.greig@jpmorgan.com - public class <xsl:value-of select="$f/@name"/> : AMQMethodBody , IEncodableAMQDataBlock - { - public const int CLASS_ID = <xsl:value-of select="$f/@class-id"/>; - public const int METHOD_ID = <xsl:value-of select="$f/@method-id"/>; - - <xsl:for-each select="$f/field"> - <xsl:text>public </xsl:text><xsl:value-of select="@csharp-type"/> - <xsl:text> </xsl:text> - <xsl:value-of select="@name"/>; - </xsl:for-each> - - protected override ushort Clazz - { - get - { - return <xsl:value-of select="$f/@class-id"/>; - } - } - - protected override ushort Method - { - get - { - return <xsl:value-of select="$f/@method-id"/>; - } - } - - protected override uint BodySize - { - get - { - <xsl:choose> - <xsl:when test="$f/field"> - return (uint) - <xsl:for-each select="$f/field"> - <xsl:if test="position() != 1">+ - </xsl:if> - <xsl:value-of select="amq:field-length(.)"/> - </xsl:for-each> - ; - </xsl:when> - <xsl:otherwise>return 0;</xsl:otherwise> - </xsl:choose> - } - } - - protected override void WriteMethodPayload(ByteBuffer buffer) - { - <xsl:for-each select="$f/field"> - <xsl:if test="@type != 'bit'"> - <xsl:value-of select="amq:encoder(.)"/>; - </xsl:if> - <xsl:if test="@type = 'bit' and @boolean-index = 1"> - <xsl:text>EncodingUtils.WriteBooleans(buffer, new bool[]{</xsl:text> - <xsl:value-of select="$f/field[@type='bit']/@name" separator=", "/>}); - </xsl:if> - </xsl:for-each> - } - - protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer) - { - <xsl:for-each select="$f/field"> - <xsl:value-of select="amq:decoder(.)"/>; - </xsl:for-each> - } - - public override string ToString() - { - StringBuilder buf = new StringBuilder(base.ToString()); - <xsl:for-each select="$f/field"> - <xsl:text>buf.Append(" </xsl:text><xsl:value-of select="@name"/>: ").Append(<xsl:value-of select="@name"/>); - </xsl:for-each> - return buf.ToString(); - } - - public static AMQFrame CreateAMQFrame(ushort channelId<xsl:if test="$f/field">, </xsl:if><xsl:value-of select="$f/field/concat(@csharp-type, ' ', @name)" separator=", "/>) - { - <xsl:value-of select="@name"/> body = new <xsl:value-of select="@name"/>(); - <xsl:for-each select="$f/field"> - <xsl:value-of select="concat('body.', @name, ' = ', @name)"/>; - </xsl:for-each> - AMQFrame frame = new AMQFrame(); - frame.Channel = channelId; - frame.BodyFrame = body; - return frame; - } -} -} -</xsl:template> - -<xsl:template match="/" mode="generate-registry"> - <xsl:text>Matching root for registry mode!</xsl:text> - <xsl:value-of select="."/> - <xsl:apply-templates select="frames" mode="generate-registry"/> -</xsl:template> - -<xsl:template match="registries" mode="generate-registry"> -Wrote MethodBodyDecoderRegistry.cs - <xsl:result-document href="MethodBodyDecoderRegistry.cs" format="textFormat"> -using System; -using System.Collections; -using log4net; - -namespace Apache.Qpid.Framing -{ - - - /// - /// <summary>This class is autogenerated - /// Do not modify. - /// </summary> - /// @author Code Generator Script by robert.j.greig@jpmorgan.com - - public class MethodBodyDecoderRegistry - { - private static readonly ILog _log = LogManager.GetLogger(typeof(MethodBodyDecoderRegistry)); - - private static readonly Hashtable _classMethodProductToMethodBodyMap = new Hashtable(); - - static MethodBodyDecoderRegistry() - { - <xsl:for-each select="registry"> - <xsl:value-of select="concat(@name, '.Register(_classMethodProductToMethodBodyMap)')"/>; - </xsl:for-each> - } - - public static AMQMethodBody Get(int clazz, int method) - { - Type bodyClass = (Type) _classMethodProductToMethodBodyMap[clazz * 1000 + method]; - if (bodyClass != null) - { - try - { - return (AMQMethodBody) Activator.CreateInstance(bodyClass); - } - catch (Exception e) - { - throw new AMQFrameDecodingException(_log, "Unable to instantiate body class for class " + clazz + " and method " + method + ": " + e, e); - } - } - else - { - throw new AMQFrameDecodingException(_log, "Unable to find a suitable decoder for class " + clazz + " and method " + method); - } - } - } - } - </xsl:result-document> -</xsl:template> - -<xsl:template match="frames" mode="list-registry"> - <xsl:if test="$registry_name"> - - <xsl:variable name="file" select="concat($registry_name, '.cs')"/> - wrote <xsl:value-of select="$file"/> - <xsl:result-document href="{$file}" format="textFormat"> - -using System.Collections; -namespace Apache.Qpid.Framing -{ - /** - * This class is autogenerated, do not modify. [From <xsl:value-of select="@protocol"/>] - */ - class <xsl:value-of select="$registry_name"/> - { - internal static void Register(Hashtable map) - { - <xsl:for-each select="frame"> - <xsl:text>map[</xsl:text> - <xsl:value-of select="@class-id"/> - <xsl:text> * 1000 + </xsl:text> - <xsl:value-of select="@method-id"/> - <xsl:text>] = typeof(</xsl:text> - <xsl:value-of select="@name"/>); - </xsl:for-each> - } -} -} - </xsl:result-document> - - </xsl:if> -</xsl:template> - -</xsl:stylesheet> diff --git a/dotnet/Qpid.Common/stylesheets/framing.xsl b/dotnet/Qpid.Common/stylesheets/framing.xsl deleted file mode 100644 index 119f439599..0000000000 --- a/dotnet/Qpid.Common/stylesheets/framing.xsl +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<xsl:import href="prepare1.xsl"/> -<xsl:import href="prepare2.xsl"/> -<xsl:import href="prepare3.xsl"/> -<xsl:import href="csharp.xsl"/> - -<xsl:output indent="yes"/> -<xsl:output method="text" indent="yes" name="textFormat"/> - -<xsl:template match="/"> - <xsl:variable name="prepare1"> - <xsl:apply-templates mode="prepare1" select="."/> - </xsl:variable> - - <xsl:variable name="prepare2"> - <xsl:apply-templates mode="prepare2" select="$prepare1"/> - </xsl:variable> - - <xsl:variable name="model"> - <xsl:apply-templates mode="prepare3" select="$prepare2"/> - </xsl:variable> - - <xsl:apply-templates mode="generate-multi" select="$model"/> - <xsl:apply-templates mode="list-registry" select="$model"/> - - <!-- dump out the intermediary files for debugging --> - <!-- - <xsl:result-document href="prepare1.out"> - <xsl:copy-of select="$prepare1"/> - </xsl:result-document> - - <xsl:result-document href="prepare2.out"> - <xsl:copy-of select="$prepare2"/> - </xsl:result-document> - - <xsl:result-document href="model.out"> - <xsl:copy-of select="$model"/> - </xsl:result-document> - --> -</xsl:template> - -</xsl:stylesheet> diff --git a/dotnet/Qpid.Common/stylesheets/java.xsl b/dotnet/Qpid.Common/stylesheets/java.xsl deleted file mode 100644 index 7297c6ae62..0000000000 --- a/dotnet/Qpid.Common/stylesheets/java.xsl +++ /dev/null @@ -1,230 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<!-- this class contains the templates for generating java source code for a given framing model --> -<xsl:import href="utils.xsl"/> -<xsl:output method="text" indent="yes" name="textFormat"/> - -<xsl:param name="registry_name"/> - -<xsl:template match="/"> - <xsl:apply-templates mode="generate-multi" select="frames"/> - <xsl:apply-templates mode="generate-registry" select="frames"/> -</xsl:template> - -<!-- processes all frames outputting the classes in a single stream --> -<!-- (useful for debugging etc) --> -<xsl:template match="frame" mode="generate-single"> - <xsl:call-template name="generate-class"> - <xsl:with-param name="f" select="."/> - </xsl:call-template> -</xsl:template> - -<!-- generates seperate file for each class/frame --> -<xsl:template match="frame" mode="generate-multi"> - <xsl:variable name="uri" select="concat(@name, '.java')"/> - wrote <xsl:value-of select="$uri"/> - <xsl:result-document href="{$uri}" format="textFormat"> - <xsl:call-template name="generate-class"> - <xsl:with-param name="f" select="."/> - </xsl:call-template> - </xsl:result-document> -</xsl:template> - -<!-- main class generation template --> -<xsl:template name="generate-class"> - <xsl:param name="f"/> -package org.openamq.framing; - -import org.apache.mina.common.ByteBuffer; - -/** - * This class is autogenerated, do not modify. [From <xsl:value-of select="$f/parent::frames/@protocol"/>] - */ -public class <xsl:value-of select="$f/@name"/> extends AMQMethodBody implements EncodableAMQDataBlock -{ - public static final int CLASS_ID = <xsl:value-of select="$f/@class-id"/>; - public static final int METHOD_ID = <xsl:value-of select="$f/@method-id"/>; - - <xsl:for-each select="$f/field"> - <xsl:text>public </xsl:text><xsl:value-of select="@java-type"/> - <xsl:text> </xsl:text> - <xsl:value-of select="@name"/>; - </xsl:for-each> - - protected int getClazz() - { - return <xsl:value-of select="$f/@class-id"/>; - } - - protected int getMethod() - { - return <xsl:value-of select="$f/@method-id"/>; - } - - protected int getBodySize() - { - <xsl:choose> - <xsl:when test="$f/field"> - return - <xsl:for-each select="$f/field"> - <xsl:if test="position() != 1">+ - </xsl:if> - <xsl:value-of select="amq:field-length(.)"/> - </xsl:for-each> - ; - </xsl:when> - <xsl:otherwise>return 0;</xsl:otherwise> - </xsl:choose> - } - - protected void writeMethodPayload(ByteBuffer buffer) - { - <xsl:for-each select="$f/field"> - <xsl:if test="@type != 'bit'"> - <xsl:value-of select="amq:encoder(.)"/>; - </xsl:if> - <xsl:if test="@type = 'bit' and @boolean-index = 1"> - <xsl:text>EncodingUtils.writeBooleans(buffer, new boolean[]{</xsl:text> - <xsl:value-of select="$f/field[@type='bit']/@name" separator=", "/>}); - </xsl:if> - </xsl:for-each> - } - - public void populateMethodBodyFromBuffer(ByteBuffer buffer) throws AMQFrameDecodingException - { - <xsl:for-each select="$f/field"> - <xsl:value-of select="amq:decoder(.)"/>; - </xsl:for-each> - } - - public String toString() - { - StringBuffer buf = new StringBuffer(super.toString()); - <xsl:for-each select="$f/field"> - <xsl:text>buf.append(" </xsl:text><xsl:value-of select="@name"/>: ").append(<xsl:value-of select="@name"/>); - </xsl:for-each> - return buf.toString(); - } - - public static AMQFrame createAMQFrame(int channelId<xsl:if test="$f/field">, </xsl:if><xsl:value-of select="$f/field/concat(@java-type, ' ', @name)" separator=", "/>) - { - <xsl:value-of select="@name"/> body = new <xsl:value-of select="@name"/>(); - <xsl:for-each select="$f/field"> - <xsl:value-of select="concat('body.', @name, ' = ', @name)"/>; - </xsl:for-each> - AMQFrame frame = new AMQFrame(); - frame.channel = channelId; - frame.bodyFrame = body; - return frame; - } -} -</xsl:template> - -<xsl:template match="/" mode="generate-registry"> - <xsl:text>Matching root for registry mode!</xsl:text> - <xsl:value-of select="."/> - <xsl:apply-templates select="frames" mode="generate-registry"/> -</xsl:template> - -<xsl:template match="registries" mode="generate-registry"> -Wrote MethodBodyDecoderRegistry.java - <xsl:result-document href="MethodBodyDecoderRegistry.java" format="textFormat">package org.openamq.framing; - -import java.util.Map; -import java.util.HashMap; -import org.apache.log4j.Logger; -import org.openamq.AMQException; - -/** - * This class is autogenerated, do not modify. - */ -public final class MethodBodyDecoderRegistry -{ - private static final Logger _log = Logger.getLogger(MethodBodyDecoderRegistry.class); - - private static final Map _classMethodProductToMethodBodyMap = new HashMap(); - - static - { - <xsl:for-each select="registry"> - <xsl:value-of select="concat(@name, '.register(_classMethodProductToMethodBodyMap)')"/>; - </xsl:for-each> - } - - public static AMQMethodBody get(int clazz, int method) throws AMQFrameDecodingException - { - Class bodyClass = (Class) _classMethodProductToMethodBodyMap.get(new Integer(clazz * 1000 + method)); - if (bodyClass != null) - { - try - { - return (AMQMethodBody) bodyClass.newInstance(); - } - catch (Exception e) - { - throw new AMQFrameDecodingException(_log, "Unable to instantiate body class for class " + clazz + " and method " + method + ": " + e, e); - } - } - else - { - throw new AMQFrameDecodingException(_log, "Unable to find a suitable decoder for class " + clazz + " and method " + method); - } - } -} -</xsl:result-document> -</xsl:template> - -<xsl:template match="frames" mode="list-registry"> - <xsl:if test="$registry_name"> - - <xsl:variable name="file" select="concat($registry_name, '.java')"/> - wrote <xsl:value-of select="$file"/> - <xsl:result-document href="{$file}" format="textFormat">package org.openamq.framing; - -import java.util.Map; - -/** - * This class is autogenerated, do not modify. [From <xsl:value-of select="@protocol"/>] - */ -class <xsl:value-of select="$registry_name"/> -{ - static void register(Map map) - { - <xsl:for-each select="frame"> - <xsl:text>map.put(new Integer(</xsl:text> - <xsl:value-of select="@class-id"/> - <xsl:text> * 1000 + </xsl:text> - <xsl:value-of select="@method-id"/> - <xsl:text>), </xsl:text> - <xsl:value-of select="concat(@name, '.class')"/>); - </xsl:for-each> - } -} - </xsl:result-document> - - </xsl:if> -</xsl:template> - -</xsl:stylesheet> diff --git a/dotnet/Qpid.Common/stylesheets/prepare1.xsl b/dotnet/Qpid.Common/stylesheets/prepare1.xsl deleted file mode 100644 index e266b0a9cc..0000000000 --- a/dotnet/Qpid.Common/stylesheets/prepare1.xsl +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<xsl:import href="utils.xsl"/> - -<xsl:output indent="yes"/> -<xsl:param name="asl_base"/> - -<!-- pre-process, phase 1 --> - -<xsl:template match="/"> - <xsl:apply-templates select="protocol" mode="prepare1"/> -</xsl:template> - -<xsl:template match="amqp" mode="prepare1"> - <frames> - <xsl:attribute name="protocol"> - <xsl:value-of select="@comment"/> - <xsl:text> (</xsl:text> - <xsl:text>major=</xsl:text><xsl:value-of select="option[@name='protocol_major']/@value"/> - <xsl:text>, minor=</xsl:text><xsl:value-of select="option[@name='protocol_minor']/@value"/> - <xsl:text>)</xsl:text> - </xsl:attribute> - <xsl:apply-templates mode="prepare1" select="inherit"/> - <xsl:apply-templates mode="prepare1" select="include"/> - <xsl:apply-templates mode="prepare1" select="domain"/> - <xsl:apply-templates mode="prepare1" select="class"/> - </frames> -</xsl:template> - -<xsl:template match="include" mode="prepare1"> - <xsl:if test="@filename != 'asl_constants.asl'"> - <!-- skip asl_constants.asl, we don't need it and it is not well formed so causes error warnings --> - <xsl:apply-templates select="document(@filename)" mode="prepare1"/> - </xsl:if> -</xsl:template> - -<xsl:template match="inherit" mode="prepare1"> - <xsl:variable name="ibase" select="concat('file:///', $asl_base, '/', @name, '.asl')"/> - <xsl:choose> - <xsl:when test="document($ibase)"> - <xsl:apply-templates select="document($ibase)" mode="prepare1"/> - </xsl:when> - <xsl:otherwise> - <xsl:message> - Could not inherit from <xsl:value-of select="$ibase"/>; file not found. - </xsl:message> - </xsl:otherwise> - </xsl:choose> -</xsl:template> - -<xsl:template match="class[@index]" mode="prepare1"> - <xsl:apply-templates select="method" mode="prepare1"/> -</xsl:template> - -<xsl:template match="method" mode="prepare1"> - <xsl:if test="parent::class[@index]"><!-- there is a template class that has no index, which we want to skip --> - <frame> - <xsl:attribute name="name"><xsl:value-of select="amq:class-name(parent::class/@name, @name)"/></xsl:attribute> - <xsl:attribute name="class-id"><xsl:value-of select="parent::class/@index"/></xsl:attribute> - <xsl:if test="@index"> - <xsl:attribute name="method-id"><xsl:value-of select="@index"/></xsl:attribute> - </xsl:if> - <xsl:if test="not(@index)"> - <xsl:attribute name="method-id"><xsl:number count="method"/></xsl:attribute> - </xsl:if> - - <xsl:apply-templates select="field" mode="prepare1"/> - </frame> - </xsl:if> -</xsl:template> - -<xsl:template match="domain" mode="prepare1"> - <domain> - <name><xsl:value-of select="@name"/></name> - <type><xsl:value-of select="@type"/></type> - </domain> -</xsl:template> - -<xsl:template match="field" mode="prepare1"> - <field> - <xsl:copy-of select="@name"/> - <xsl:copy-of select="@type"/> - <xsl:copy-of select="@domain"/> - </field> -</xsl:template> - -</xsl:stylesheet> diff --git a/dotnet/Qpid.Common/stylesheets/prepare2.xsl b/dotnet/Qpid.Common/stylesheets/prepare2.xsl deleted file mode 100644 index 0a64eb6f86..0000000000 --- a/dotnet/Qpid.Common/stylesheets/prepare2.xsl +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<xsl:import href="utils.xsl"/> - -<xsl:output indent="yes"/> - -<!-- pre-process, phase 2 --> - -<xsl:key name="domain-lookup" match="domain" use="name"/> - -<xsl:template match="/"> - <xsl:apply-templates mode="prepare2" select="frames"/> -</xsl:template> - -<xsl:template match="field[@domain]" mode="prepare2"> - <field> - <xsl:variable name="t1" select="key('domain-lookup', @domain)/type"/> - <xsl:attribute name="name"><xsl:value-of select="amq:field-name(@name)"/></xsl:attribute> - <xsl:attribute name="type"><xsl:value-of select="$t1"/></xsl:attribute> - </field> -</xsl:template> - -<xsl:template match="field[@type]" mode="prepare2"> - <field> - <xsl:attribute name="name"><xsl:value-of select="amq:field-name(@name)"/></xsl:attribute> - <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute> - </field> -</xsl:template> - -<xsl:template match="frames" mode="prepare2"> - <frames> - <xsl:copy-of select="@protocol"/> - <xsl:apply-templates mode="prepare2"/> - </frames> -</xsl:template> - -<xsl:template match="frame" mode="prepare2"> - <xsl:element name="{name()}"> - <xsl:copy-of select="@*"/> - <xsl:apply-templates mode="prepare2" select="field"/> - </xsl:element> -</xsl:template> - -<xsl:template match="domain" mode="prepare2"></xsl:template> - -</xsl:stylesheet> diff --git a/dotnet/Qpid.Common/stylesheets/prepare3.xsl b/dotnet/Qpid.Common/stylesheets/prepare3.xsl deleted file mode 100644 index a921160dd0..0000000000 --- a/dotnet/Qpid.Common/stylesheets/prepare3.xsl +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<xsl:import href="utils.xsl"/> - -<xsl:output indent="yes"/> - -<!-- final preparation of the model --> - -<xsl:template match="/"> - <xsl:apply-templates mode="prepare3"/> -</xsl:template> - -<xsl:template match="frames" mode="prepare3"> - <frames> - <xsl:copy-of select="@protocol"/> - <xsl:apply-templates mode="prepare3"/> - </frames> -</xsl:template> - -<xsl:template match="frame" mode="prepare3"> - <xsl:element name="frame"> - <xsl:copy-of select="@*"/> - <xsl:if test="field[@type='bit']"><xsl:attribute name="has-bit-field">true</xsl:attribute></xsl:if> - <xsl:apply-templates mode="prepare3"/> - </xsl:element> -</xsl:template> - - -<xsl:template match="field" mode="prepare3"> - <field> - <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute> - <!-- ensure the field name is processed to be a valid java name --> - <xsl:attribute name="name"><xsl:value-of select="amq:field-name(@name)"/></xsl:attribute> - <!-- add some attributes to make code generation easier --> - <xsl:attribute name="csharp-type"><xsl:value-of select="amq:csharp-type(@type)"/></xsl:attribute> - <xsl:if test="@type='bit'"> - <xsl:attribute name="boolean-index"><xsl:number count="field[@type='bit']"/></xsl:attribute> - </xsl:if> - </field> -</xsl:template> - -</xsl:stylesheet> diff --git a/dotnet/Qpid.Common/stylesheets/readme.txt b/dotnet/Qpid.Common/stylesheets/readme.txt deleted file mode 100644 index c2f98050a6..0000000000 --- a/dotnet/Qpid.Common/stylesheets/readme.txt +++ /dev/null @@ -1,52 +0,0 @@ -This directory contains the xsl stylesheets used to generate the code from the -OpenAMQ protocol specification. They require an XSLT2.0 processor, currently -Saxon 8 is used. - -The generation process is controlled by the framing.xsl stylesheet. This performs -several phases of transformation, using the other stylesheets. The transformation -in each phase is defined in a separate file, and these are designed to also allow -then to be run individually. - -The generation takes the amq.asl as input, it also requires that the path to the -directory where the base asl definitions reside (those definitions that the main -amq.asl defintion inherits from) be passed in via a paramter called asl_base. - -The files involved are as follows: - - framing.xsl The control file for the entire generation process - - prepare1.xsl Resolves the separate files that make up the protocol - definition, building a single tree containing all the - information as a set of 'frame' elements, each of which - has attributes for its name, and ids for the class and - method it refers to and contains zero or more field - elements. - - A method id is generated based on the order of the - method elements within the class elements in the original - specification. The class id is taken from the enclosing - class element. - - prepare2.xsl Resolves domains into their corresponding types. (This is - much easier when all the information is in a single tree, - hence the separate frame). - - prepare3.xsl Converts names into valid java names and augments the - tree to include information that makes the subsequent - generation phase simpler e.g. the index of boolean - fields as several boolean flags are combined into a - single byte. (This is easier once the domains have been - resolved, hence the separate phase). - - java.xsl Generates java classes for each frame, and a registry of - all the frames to a 'magic' number generated from their - class and method id. - - utils.xsl Contains some utility methods for e.g. producing valid - java names. - -For debugging the framing.xsl can output the intermediary files. This can be -enabled by uncommenting the relevant lines (a comment explaining this is -provided inline). - -
\ No newline at end of file diff --git a/dotnet/Qpid.Common/stylesheets/registry.xsl b/dotnet/Qpid.Common/stylesheets/registry.xsl deleted file mode 100644 index 47a2a29069..0000000000 --- a/dotnet/Qpid.Common/stylesheets/registry.xsl +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<xsl:import href="csharp.xsl"/> - -<xsl:output method="text" indent="yes" name="textFormat"/> - -<xsl:template match="/"> - <xsl:apply-templates mode="generate-registry" select="registries"/> -</xsl:template> - -</xsl:stylesheet> diff --git a/dotnet/Qpid.Common/stylesheets/utils.xsl b/dotnet/Qpid.Common/stylesheets/utils.xsl deleted file mode 100644 index d097bbc4eb..0000000000 --- a/dotnet/Qpid.Common/stylesheets/utils.xsl +++ /dev/null @@ -1,185 +0,0 @@ -<?xml version='1.0'?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amq="http://amq.org"> - -<!-- This file contains functions that are used in the generation of the java classes for framing --> - -<!-- retrieve the java type of a given amq type --> -<xsl:function name="amq:csharp-type"> - <xsl:param name="t"/> - <xsl:choose> - <xsl:when test="$t='char'">char</xsl:when> - <xsl:when test="$t='octet'">byte</xsl:when> - <xsl:when test="$t='short'">ushort</xsl:when> - <xsl:when test="$t='shortstr'">string</xsl:when> - <xsl:when test="$t='longstr'">byte[]</xsl:when> - <xsl:when test="$t='bit'">bool</xsl:when> - <xsl:when test="$t='long'">uint</xsl:when> - <xsl:when test="$t='longlong'">ulong</xsl:when> - <xsl:when test="$t='table'">FieldTable</xsl:when> - <xsl:otherwise>Object /*WARNING: undefined type*/</xsl:otherwise> - </xsl:choose> -</xsl:function> - -<!-- retrieve the code to get the field size of a given amq type --> -<xsl:function name="amq:field-length"> - <xsl:param name="f"/> - <xsl:choose> - <xsl:when test="$f/@type='bit' and $f/@boolean-index=1"> - <xsl:value-of select="concat('1 /*', $f/@name, '*/')"/> - </xsl:when> - <xsl:when test="$f/@type='bit' and $f/@boolean-index > 1"> - <xsl:value-of select="concat('0 /*', $f/@name, '*/')"/> - </xsl:when> - <xsl:when test="$f/@type='char'"> - <xsl:value-of select="concat('1 /*', $f/@name, '*/')"/> - </xsl:when> - <xsl:when test="$f/@type='octet'"> - <xsl:value-of select="concat('1 /*', $f/@name, '*/')"/> - </xsl:when> - <xsl:when test="$f/@type='short'"> - <xsl:value-of select="concat('2 /*', $f/@name, '*/')"/> - </xsl:when> - <xsl:when test="$f/@type='long'"> - <xsl:value-of select="concat('4 /*', $f/@name, '*/')"/> - </xsl:when> - <xsl:when test="$f/@type='longlong'"> - <xsl:value-of select="concat('8 /*', $f/@name, '*/')"/> - </xsl:when> - <xsl:when test="$f/@type='shortstr'"> - <xsl:value-of select="concat('(uint)EncodingUtils.EncodedShortStringLength(', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='longstr'"> - <xsl:value-of select="concat('4 + (uint) (', $f/@name, ' == null ? 0 : ', $f/@name, '.Length)')"/> - </xsl:when> - <xsl:when test="$f/@type='table'"> - <xsl:value-of select="concat('(uint)EncodingUtils.EncodedFieldTableLength(', $f/@name, ')')"/> - </xsl:when> - <xsl:otherwise><xsl:text>/* WARNING: COULD NOT DETERMINE FIELD SIZE */</xsl:text></xsl:otherwise> - </xsl:choose> -</xsl:function> - -<!-- retrieve the code to encode a field of a given amq type --> -<!-- Note: - This method will not provide an encoder for a bit field. - Bit fields should be encoded together separately. --> - -<xsl:function name="amq:encoder"> - <xsl:param name="f"/> - <xsl:choose> - <xsl:when test="$f/@type='char'"> - <xsl:value-of select="concat('buffer.Put(', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='octet'"> - <xsl:value-of select="concat('buffer.Put(', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='short'"> - <xsl:value-of select="concat('buffer.Put(', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='long'"> - <xsl:value-of select="concat('buffer.Put(', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='longlong'"> - <xsl:value-of select="concat('buffer.Put(', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='shortstr'"> - <xsl:value-of select="concat('EncodingUtils.WriteShortStringBytes(buffer, ', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='longstr'"> - <xsl:value-of select="concat('EncodingUtils.WriteLongstr(buffer, ', $f/@name, ')')"/> - </xsl:when> - <xsl:when test="$f/@type='table'"> - <xsl:value-of select="concat('EncodingUtils.WriteFieldTableBytes(buffer, ', $f/@name, ')')"/> - </xsl:when> - <xsl:otherwise><xsl:text>/* WARNING: COULD NOT DETERMINE ENCODER */</xsl:text></xsl:otherwise> - </xsl:choose> -</xsl:function> - -<!-- retrieve the code to decode a field of a given amq type --> -<xsl:function name="amq:decoder"> - <xsl:param name="f"/> - <xsl:choose> - <xsl:when test="$f/@type='bit'"> - <xsl:if test="$f/@boolean-index = 1"> - <xsl:text>bool[] bools = EncodingUtils.ReadBooleans(buffer);</xsl:text> - </xsl:if> - <xsl:value-of select="concat($f/@name, ' = bools[', $f/@boolean-index - 1 , ']')"/> - </xsl:when> - <xsl:when test="$f/@type='char'"> - <xsl:value-of select="concat($f/@name, ' = buffer.GetChar()')"/> - </xsl:when> - <xsl:when test="$f/@type='octet'"> - <xsl:value-of select="concat($f/@name, ' = buffer.GetByte()')"/> - </xsl:when> - <xsl:when test="$f/@type='short'"> - <xsl:value-of select="concat($f/@name, ' = buffer.GetUInt16()')"/> - </xsl:when> - <xsl:when test="$f/@type='long'"> - <xsl:value-of select="concat($f/@name, ' = buffer.GetUInt32()')"/> - </xsl:when> - <xsl:when test="$f/@type='longlong'"> - <xsl:value-of select="concat($f/@name, ' = buffer.GetUInt64()')"/> - </xsl:when> - <xsl:when test="$f/@type='shortstr'"> - <xsl:value-of select="concat($f/@name, ' = EncodingUtils.ReadShortString(buffer)')"/> - </xsl:when> - <xsl:when test="$f/@type='longstr'"> - <xsl:value-of select="concat($f/@name, ' = EncodingUtils.ReadLongstr(buffer)')"/> - </xsl:when> - <xsl:when test="$f/@type='table'"> - <xsl:value-of select="concat($f/@name, ' = EncodingUtils.ReadFieldTable(buffer)')"/> - </xsl:when> - <xsl:otherwise><xsl:text>/* WARNING: COULD NOT DETERMINE DECODER */</xsl:text></xsl:otherwise> - </xsl:choose> -</xsl:function> - -<!-- create the class name for a frame, based on class and method (passed in) --> -<xsl:function name="amq:class-name"> - <xsl:param name="class"/> - <xsl:param name="method"/> - <xsl:value-of select="concat(amq:upper-first($class),amq:upper-first(amq:field-name($method)), 'Body')"/> -</xsl:function> - -<!-- get a valid field name, processing spaces and '-'s where appropriate --> -<xsl:function name="amq:field-name"> - <xsl:param name="name"/> - <xsl:choose> - <xsl:when test="contains($name, ' ')"> - <xsl:value-of select="amq:upper-first(concat(substring-before($name, ' '), amq:upper-first(substring-after($name, ' '))))"/> - </xsl:when> - <xsl:when test="contains($name, '-')"> - <xsl:value-of select="amq:upper-first(concat(substring-before($name, '-'), amq:upper-first(substring-after($name, '-'))))"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="amq:upper-first($name)"/> - </xsl:otherwise> - </xsl:choose> -</xsl:function> - -<!-- convert the first character of the input to upper-case --> -<xsl:function name="amq:upper-first"> - <xsl:param name="in"/> - <xsl:value-of select="concat(upper-case(substring($in, 1, 1)), substring($in, 2))"/> -</xsl:function> - -</xsl:stylesheet> |