&{${CLASS}${METHOD}Body.java}
/*
 *
 * Copyright (c) 2006 The Apache Software Foundation
 *
 * Licensed 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 versions:
%{VLIST} *   ${major}-${minor}
 */
 
package org.apache.qpid.framing;

import java.util.TreeMap;

import org.apache.mina.common.ByteBuffer;

public class ${CLASS}${METHOD}Body extends AMQMethodBody implements EncodableAMQDataBlock
{
    public static final TreeMap<String, Integer> classIdMap = new TreeMap<String, Integer>();
    public static final TreeMap<String, Integer> methodIdMap = new TreeMap<String, Integer>();
    
    static
    {
${CLASS_ID_INIT}
${METHOD_ID_INIT}
    }
    
    // Fields declared in specification
%{FLIST}    ${field_declaration}

    // Constructor
    public ${CLASS}${METHOD}Body(byte major, byte minor)
    {
        super(major, minor);
    }

    public int getClazz() { return classIdMap.get(major + "-" + minor); }
    public int getMethod() { return methodIdMap.get(major + "-" + minor); }
    
    // Field methods		
%{FLIST}    ${mb_field_get_method}

    protected int getBodySize()
    {      
        int size = 0;
%{FLIST}    ${mb_field_size}
        return size;        
    }

    protected void writeMethodPayload(ByteBuffer buffer)
    {
%{FLIST}    ${mb_field_encode}
    }

    public void populateMethodBodyFromBuffer(ByteBuffer buffer) throws AMQFrameDecodingException
    {
%{FLIST}    ${mb_field_decode}
    }

    public String toString()
    {
        StringBuffer buf = new StringBuffer(super.toString());
%{FLIST}    ${mb_field_to_string}
        return buf.toString();
    }

    public static AMQFrame createAMQFrame(int channelId, byte major, byte minor
%{FLIST}    ${mb_field_parameter_list}
                                         )
    {
        ${CLASS}${METHOD}Body body = new ${CLASS}${METHOD}Body(major, minor);
%{FLIST}    ${mb_field_body_initialize}
        		 
        AMQFrame frame = new AMQFrame();
        frame.channel = channelId;
        frame.bodyFrame = body;
        return frame;
    }
}
