/* * 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. */ package java.nio; /** Provide factory service of buffer classes. * <p> * Since all buffer impl classes are package private (except DirectByteBuffer), this factory is the only entrance to access buffer * functions from outside of the impl package. * </p> */ final class BufferFactory { /** Returns a new byte buffer based on the specified byte array. * * @param array The byte array * @return A new byte buffer based on the specified byte array. */ public static ByteBuffer newByteBuffer (byte array[]) { return new ReadWriteHeapByteBuffer(array); } /** Returns a new array based byte buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new array based byte buffer with the specified capacity. */ public static ByteBuffer newByteBuffer (int capacity) { return new ReadWriteHeapByteBuffer(capacity); } /** Returns a new char buffer based on the specified char array. * * @param array The char array * @return A new char buffer based on the specified char array. */ public static CharBuffer newCharBuffer (char array[]) { return new ReadWriteCharArrayBuffer(array); } /** Returns a new readonly char buffer based on the specified char sequence. * * @param chseq The char sequence * @return A new readonly char buffer based on the specified char sequence. */ public static CharBuffer newCharBuffer (CharSequence chseq) { return new CharSequenceAdapter(chseq); } /** Returns a new array based char buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new array based char buffer with the specified capacity. */ public static CharBuffer newCharBuffer (int capacity) { return new ReadWriteCharArrayBuffer(capacity); } /** Returns a new direct byte buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new direct byte buffer with the specified capacity. */ public static ByteBuffer newDirectByteBuffer (int capacity) { return new DirectReadWriteByteBuffer(capacity); } /** Returns a new double buffer based on the specified double array. * * @param array The double array * @return A new double buffer based on the specified double array. */ public static DoubleBuffer newDoubleBuffer (double array[]) { return new ReadWriteDoubleArrayBuffer(array); } /** Returns a new array based double buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new array based double buffer with the specified capacity. */ public static DoubleBuffer newDoubleBuffer (int capacity) { return new ReadWriteDoubleArrayBuffer(capacity); } /** Returns a new float buffer based on the specified float array. * * @param array The float array * @return A new float buffer based on the specified float array. */ public static FloatBuffer newFloatBuffer (float array[]) { return new ReadWriteFloatArrayBuffer(array); } /** Returns a new array based float buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new array based float buffer with the specified capacity. */ public static FloatBuffer newFloatBuffer (int capacity) { return new ReadWriteFloatArrayBuffer(capacity); } /** Returns a new array based int buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new array based int buffer with the specified capacity. */ public static IntBuffer newIntBuffer (int capacity) { return new ReadWriteIntArrayBuffer(capacity); } /** Returns a new int buffer based on the specified int array. * * @param array The int array * @return A new int buffer based on the specified int array. */ public static IntBuffer newIntBuffer (int array[]) { return new ReadWriteIntArrayBuffer(array); } /** Returns a new array based long buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new array based long buffer with the specified capacity. */ public static LongBuffer newLongBuffer (int capacity) { return new ReadWriteLongArrayBuffer(capacity); } /** Returns a new long buffer based on the specified long array. * * @param array The long array * @return A new long buffer based on the specified long array. */ public static LongBuffer newLongBuffer (long array[]) { return new ReadWriteLongArrayBuffer(array); } /** Returns a new array based short buffer with the specified capacity. * * @param capacity The capacity of the new buffer * @return A new array based short buffer with the specified capacity. */ public static ShortBuffer newShortBuffer (int capacity) { return new ReadWriteShortArrayBuffer(capacity); } /** Returns a new short buffer based on the specified short array. * * @param array The short array * @return A new short buffer based on the specified short array. */ public static ShortBuffer newShortBuffer (short array[]) { return new ReadWriteShortArrayBuffer(array); } }