| #macro( UpperCamel $name ) |
| #set( $name = "${name.substring(0,1).toUpperCase()}${name.substring(1)}" ) |
| #end |
| #macro( toUpperCamel $name )${name.substring(0,1).toUpperCase()}${name.substring(1)}#end |
| #set( $amqp_ClassName = $amqpClass.Name) |
| #UpperCamel( $amqp_ClassName ) |
| #set( $amqp_MethodName = $amqpMethod.Name ) |
| #UpperCamel( $amqp_MethodName ) |
| #set( $javaClassName = "${amqp_ClassName}${amqp_MethodName}BodyImpl" ) |
| #set( $interfaceName = "${amqp_ClassName}${amqp_MethodName}Body" ) |
| #set( $amqpPackageName = "amqp_$version.getMajor()_$version.getMinor()" ) |
| #set( $filename = "${amqpPackageName}/${javaClassName}.java") |
| /* |
| * |
| * 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. |
| * |
| */ |
| |
| /* |
| * This file is auto-generated by ${generator} - do not modify. |
| * Supported AMQP version: |
| * $version.getMajor()-$version.getMinor() |
| */ |
| |
| #set( $clazz = $amqpClass.asSingleVersionClass( $version ) ) |
| #set( $method = $amqpMethod.asSingleVersionMethod( $version ) ) |
| package org.apache.qpid.framing.amqp_$version.getMajor()_$version.getMinor(); |
| |
| import org.apache.qpid.codec.MarkableDataInput; |
| import java.io.DataOutput; |
| import java.io.IOException; |
| |
| import org.apache.qpid.framing.*; |
| import org.apache.qpid.AMQException; |
| |
| public class ${javaClassName} extends AMQMethodBody_$version.getMajor()_$version.getMinor() implements $interfaceName |
| { |
| private static final AMQMethodBodyInstanceFactory FACTORY_INSTANCE = new AMQMethodBodyInstanceFactory() |
| { |
| public AMQMethodBody newInstance(MarkableDataInput in, long size) throws AMQFrameDecodingException, IOException |
| { |
| return new ${javaClassName}(in); |
| } |
| }; |
| |
| public static AMQMethodBodyInstanceFactory getFactory() |
| { |
| return FACTORY_INSTANCE; |
| } |
| |
| public static final int CLASS_ID = $clazz.ClassId; |
| public static final int METHOD_ID = $method.MethodId; |
| |
| // Fields declared in specification |
| #foreach( $field in $method.ConsolidatedFields ) |
| private final $field.NativeType _$field.getName(); // $field.UnderlyingFields |
| #end |
| |
| // Constructor |
| public ${javaClassName}(MarkableDataInput buffer) throws AMQFrameDecodingException, IOException |
| { |
| #foreach( $field in $method.ConsolidatedFields ) |
| _$field.Name = read$field.getEncodingType()( buffer ); |
| #end |
| } |
| |
| public ${javaClassName}( |
| #foreach( $field in $method.FieldList ) |
| #if( $velocityCount == $method.getFieldList().size() ) |
| $field.NativeType $field.Name |
| #else |
| $field.NativeType $field.Name, |
| #end |
| #end |
| ) |
| { |
| #set( $consolidatedFieldName = "" ) |
| #foreach( $field in $method.FieldList ) |
| #if( $method.isConsolidated( $field.Name ) ) |
| #if( !$method.getConsolidatedFieldName( $field.Name ).equals( $consolidatedFieldName ) ) |
| #if( !$consolidatedFieldName.equals("") ) |
| _$consolidatedFieldName = $consolidatedFieldName; // 1 |
| #end |
| #set( $consolidatedFieldName = $method.getConsolidatedFieldName( $field.Name ) ) |
| byte $consolidatedFieldName = (byte)0; |
| #end |
| if( $field.Name ) |
| { |
| $consolidatedFieldName = (byte) (((int) $consolidatedFieldName) | (1 << $method.getPositionInBitField( $field.Name ))); |
| } |
| #if( $velocityCount == $method.getFieldList().size()) |
| _$consolidatedFieldName = $consolidatedFieldName; |
| #else |
| |
| #end |
| #else |
| #if( !$consolidatedFieldName.equals("") ) |
| _$consolidatedFieldName = $consolidatedFieldName; |
| #end |
| #set( $consolidatedFieldName = "" ) |
| _$field.Name = $field.Name; |
| #end |
| #end |
| } |
| |
| public int getClazz() |
| { |
| return CLASS_ID; |
| } |
| |
| public int getMethod() |
| { |
| return METHOD_ID; |
| } |
| |
| #foreach( $field in $method.FieldList ) |
| public final $field.NativeType get#toUpperCamel( ${field.Name} )() |
| { |
| #if( $method.isConsolidated( $field.Name ) ) |
| return (((int)(_$method.getConsolidatedFieldName( $field.Name ))) & ( 1 << $method.getPositionInBitField( $field.Name ))) != 0; |
| #else |
| return _$field.Name; |
| #end |
| } |
| #end |
| |
| protected int getBodySize() |
| { |
| #set( $fixedSize = 0 ) |
| #foreach( $field in $method.ConsolidatedFields ) |
| #if( $field.isFixedSize() ) |
| #set( $fixedSize = $fixedSize + $field.Size ) |
| #end |
| #end |
| int size = $fixedSize; |
| #foreach( $field in $method.ConsolidatedFields ) |
| #if( ! $field.isFixedSize() ) |
| size += getSizeOf( _$field.Name ); |
| #end |
| #end |
| return size; |
| } |
| |
| public void writeMethodPayload(DataOutput buffer) throws IOException |
| { |
| #foreach( $field in $method.ConsolidatedFields ) |
| write$field.getEncodingType()( buffer, _$field.Name ); |
| #end |
| } |
| |
| public boolean execute(MethodDispatcher dispatcher, int channelId) throws AMQException |
| { |
| #set( $amqpMethodNameFirstChar = $amqpMethod.getName().substring(0,1) ) |
| #set( $amqpMethodNameFirstCharU = $amqpMethodNameFirstChar.toUpperCase() ) |
| #set( $amqpMethodNameUpperCamel = "$amqpMethodNameFirstCharU$amqpMethod.getName().substring(1)" ) |
| #if( $amqpMethod.inAllVersions() ) |
| return dispatcher.dispatch${amqpClassNameUpperCamel}${amqpMethodNameUpperCamel}(this, channelId); |
| #else |
| return ((MethodDispatcher_$version.getMajor()_$version.getMinor())dispatcher).dispatch${amqp_ClassName}${amqpMethodNameUpperCamel}(this, channelId); |
| #end |
| } |
| |
| public String toString() |
| { |
| StringBuilder buf = new StringBuilder("[$javaClassName: "); |
| #foreach( $field in $method.FieldList ) |
| buf.append( "$field.Name=" ); |
| #if( $field.NativeType == "byte[]" ) |
| buf.append( get#toUpperCamel( $field.Name )() == null ? "null" : java.util.Arrays.toString( get#toUpperCamel( $field.Name )() ) ); |
| #else |
| buf.append( get#toUpperCamel( $field.Name )() ); |
| #end |
| #if( $velocityCount != $method.FieldList.size() ) |
| buf.append( ", " ); |
| #end |
| #end |
| buf.append("]"); |
| return buf.toString(); |
| } |
| |
| } |