Java CharBuffer put(char c, CharBuffer buffer)

Here you can find the source of put(char c, CharBuffer buffer)

Description

Add the character 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 CharBuffer put(char c, CharBuffer buffer) 

Method Source Code


//package com.java2s;
/*/*  ww w . j a v  a 2  s. co  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.CharBuffer;

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

    /**
     * Add the character to the buffer, extending the buffer if needed
     * 
     * @return the same buffer if not extended, <b>a new buffer if extended</b>
     */
    public static final CharBuffer put(char c, CharBuffer buffer) {
        CharBuffer localBuf = buffer;
        if (capacityRemaining(buffer) < 1) {
            localBuf = extendBuffer(buffer, BLOCK_SIZE);
        }
        localBuf.put(c);
        return localBuf;
    }

    /**
     * @see #putChar(char, CharBuffer)
     */
    public static final CharBuffer put(char[] chars, CharBuffer buffer) {
        CharBuffer localBuf = buffer;
        if (capacityRemaining(buffer) < chars.length) {
            localBuf = extendBuffer(buffer, chars.length + BLOCK_SIZE);
        }
        localBuf.put(chars);
        return localBuf;
    }

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

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

Related

  1. extendBuffer(CharBuffer buffer, int size)
  2. getCharsFromBufferAndReset(CharBuffer buffer)
  3. nextEquals(final CharBuffer buffer, final char next)
  4. printBuffer(CharBuffer charBuffer)
  5. printCharBuffer(CharBuffer msg)
  6. searchNewline(CharBuffer buffer, int from)
  7. startsWith(final CharBuffer charBuffer, final String token)
  8. toCharArray(CharBuffer charBuffer)
  9. toCharBuffer(int[] codePoints)