Java ByteBuffer Put putInt(int i, ByteBuffer buffer)

Here you can find the source of putInt(int i, ByteBuffer buffer)

Description

Add the int to the buffer, extending the buffer if needed

License

Apache License

Return

the same buffer if not extended, a new buffer if extended

Declaration

public static final ByteBuffer putInt(int i, ByteBuffer buffer) 

Method Source Code


//package com.java2s;
/*/*from w w w .  jav  a  2  s .c o m*/
 * Copyright (c) 2013 Ramon Servadei 
 *  
 * 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.
 */

import java.nio.ByteBuffer;

public class Main {
    public static final int BLOCK_SIZE = 1024;

    /**
     * Add the int to the buffer, extending the buffer if needed
     * 
     * @return the same buffer if not extended, a new buffer if extended
     */
    public static final ByteBuffer putInt(int i, ByteBuffer buffer) {
        ByteBuffer localBuf = buffer;
        if (capacityRemaining(buffer) < 4) {
            localBuf = extendBuffer(buffer, BLOCK_SIZE);
        }
        localBuf.putInt(i);
        return localBuf;
    }

    /**
     * @return the remaining capacity in the buffer
     */
    private static int capacityRemaining(ByteBuffer buffer) {
        return buffer.limit() - buffer.position();
    }

    /**
     * @return a new buffer with the contents of the original buffer and extended by the size
     */
    private static ByteBuffer extendBuffer(ByteBuffer buffer, int size) {
        final ByteBuffer localBuffer = ByteBuffer.allocate(buffer.capacity() + size);
        System.arraycopy(buffer.array(), 0, localBuffer.array(), 0, buffer.position());
        localBuffer.position(buffer.position());
        return localBuffer;
    }
}

Related

  1. putCharSequence(ByteBuffer buf, Charset charset, CharSequence value)
  2. putDecInt(ByteBuffer buffer, int n)
  3. putInt(ByteBuffer bb, long value)
  4. putInt(ByteBuffer buffer, int val, ByteOrder order)
  5. putInt(final ByteBuffer buffer, int value)
  6. putIntArray(int ints[], ByteBuffer bb)
  7. putIntByteBuffer(ByteBuffer buf, int b)
  8. putIntByteBuffer(ByteBuffer buf, int b)
  9. putIntLSBMSB(ByteBuffer byteBuffer, int value)