Java ByteBuffer Capacity expand(ByteBuffer buffer, int newCapacity)

Here you can find the source of expand(ByteBuffer buffer, int newCapacity)

Description

If we have no more room in the current buffer, then double our capacity and copy the current buffer to the new one.

License

Apache License

Parameter

Parameter Description
buffer The buffer from which to copy the contents
newCapacity The new capacity size

Declaration


public static ByteBuffer expand(ByteBuffer buffer, int newCapacity) 

Method Source Code

//package com.java2s;
/*/*from   w  ww  . j av a 2 s .  co  m*/
 * Copyright 2008-2013 LinkedIn, Inc
 *
 * 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 {
    /**
     * If we have no more room in the current buffer, then double our capacity
     * and copy the current buffer to the new one.
     * <p/>
     * Note: the new buffer is allocated using ByteBuffer.allocate.
     *
     * @param buffer The buffer from which to copy the contents
     * @param newCapacity The new capacity size
     */

    public static ByteBuffer expand(ByteBuffer buffer, int newCapacity) {
        if (newCapacity < buffer.capacity())
            throw new IllegalArgumentException("newCapacity (" + newCapacity
                    + ") must be larger than existing capacity (" + buffer.capacity() + ")");

        ByteBuffer newBuffer = ByteBuffer.allocate(newCapacity);
        int position = buffer.position();
        buffer.rewind();
        newBuffer.put(buffer);
        newBuffer.position(position);
        return newBuffer;
    }
}

Related

  1. borrowByteBuffer(final int capacity)
  2. ensureCapacity(ByteBuffer buff, int len)
  3. ensureCapacity(ByteBuffer buffer, int capacity)
  4. ensureCapacity(ByteBuffer existingBuffer, int newLength)
  5. ensureCapacity(ByteBuffer original, int newCapacity)
  6. getByteBuffer(int capacity)
  7. grow(ByteBuffer buffer, int minCapacityIncrease)
  8. growBuffer(ByteBuffer b, int newCapacity)
  9. increaseCapacity(ByteBuffer buffer, int size)