blob: a960d357d27701281b3dc621301cce2d3cfce4e7 [file] [log] [blame]
#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();
}
}