/*
 * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

// -- This file was mechanically generated: Do not edit! -- //

package java.nio;

A read-only HeapByteBuffer. This class extends the corresponding read/write class, overriding the mutation methods to throw a ReadOnlyBufferException and overriding the view-buffer methods to return an instance of this class rather than of the superclass.
/** * A read-only HeapByteBuffer. This class extends the corresponding * read/write class, overriding the mutation methods to throw a {@link * ReadOnlyBufferException} and overriding the view-buffer methods to return an * instance of this class rather than of the superclass. */
class HeapByteBufferR extends HeapByteBuffer { // Cached array base offset private static final long ARRAY_BASE_OFFSET = UNSAFE.arrayBaseOffset(byte[].class); // Cached array base offset private static final long ARRAY_INDEX_SCALE = UNSAFE.arrayIndexScale(byte[].class); // For speed these fields are actually declared in X-Buffer; // these declarations are here as documentation /* */ HeapByteBufferR(int cap, int lim) { // package-private super(cap, lim); this.isReadOnly = true; } HeapByteBufferR(byte[] buf, int off, int len) { // package-private super(buf, off, len); this.isReadOnly = true; } protected HeapByteBufferR(byte[] buf, int mark, int pos, int lim, int cap, int off) { super(buf, mark, pos, lim, cap, off); this.isReadOnly = true; } public ByteBuffer slice() { int pos = this.position(); int lim = this.limit(); int rem = (pos <= lim ? lim - pos : 0); return new HeapByteBufferR(hb, -1, 0, rem, rem, pos + offset); } ByteBuffer slice(int pos, int lim) { assert (pos >= 0); assert (pos <= lim); int rem = lim - pos; return new HeapByteBufferR(hb, -1, 0, rem, rem, pos + offset); } public ByteBuffer duplicate() { return new HeapByteBufferR(hb, this.markValue(), this.position(), this.limit(), this.capacity(), offset); } public ByteBuffer asReadOnlyBuffer() { return duplicate(); } public boolean isReadOnly() { return true; } public ByteBuffer put(byte x) { throw new ReadOnlyBufferException(); } public ByteBuffer put(int i, byte x) { throw new ReadOnlyBufferException(); } public ByteBuffer put(byte[] src, int offset, int length) { throw new ReadOnlyBufferException(); } public ByteBuffer put(ByteBuffer src) { throw new ReadOnlyBufferException(); } public ByteBuffer compact() { throw new ReadOnlyBufferException(); } byte _get(int i) { // package-private return hb[i]; } void _put(int i, byte b) { // package-private throw new ReadOnlyBufferException(); } // char public ByteBuffer putChar(char x) { throw new ReadOnlyBufferException(); } public ByteBuffer putChar(int i, char x) { throw new ReadOnlyBufferException(); } public CharBuffer asCharBuffer() { int pos = position(); int size = (limit() - pos) >> 1; long addr = address + pos; return (bigEndian ? (CharBuffer)(new ByteBufferAsCharBufferRB(this, -1, 0, size, size, addr)) : (CharBuffer)(new ByteBufferAsCharBufferRL(this, -1, 0, size, size, addr))); } // short public ByteBuffer putShort(short x) { throw new ReadOnlyBufferException(); } public ByteBuffer putShort(int i, short x) { throw new ReadOnlyBufferException(); } public ShortBuffer asShortBuffer() { int pos = position(); int size = (limit() - pos) >> 1; long addr = address + pos; return (bigEndian ? (ShortBuffer)(new ByteBufferAsShortBufferRB(this, -1, 0, size, size, addr)) : (ShortBuffer)(new ByteBufferAsShortBufferRL(this, -1, 0, size, size, addr))); } // int public ByteBuffer putInt(int x) { throw new ReadOnlyBufferException(); } public ByteBuffer putInt(int i, int x) { throw new ReadOnlyBufferException(); } public IntBuffer asIntBuffer() { int pos = position(); int size = (limit() - pos) >> 2; long addr = address + pos; return (bigEndian ? (IntBuffer)(new ByteBufferAsIntBufferRB(this, -1, 0, size, size, addr)) : (IntBuffer)(new ByteBufferAsIntBufferRL(this, -1, 0, size, size, addr))); } // long public ByteBuffer putLong(long x) { throw new ReadOnlyBufferException(); } public ByteBuffer putLong(int i, long x) { throw new ReadOnlyBufferException(); } public LongBuffer asLongBuffer() { int pos = position(); int size = (limit() - pos) >> 3; long addr = address + pos; return (bigEndian ? (LongBuffer)(new ByteBufferAsLongBufferRB(this, -1, 0, size, size, addr)) : (LongBuffer)(new ByteBufferAsLongBufferRL(this, -1, 0, size, size, addr))); } // float public ByteBuffer putFloat(float x) { throw new ReadOnlyBufferException(); } public ByteBuffer putFloat(int i, float x) { throw new ReadOnlyBufferException(); } public FloatBuffer asFloatBuffer() { int pos = position(); int size = (limit() - pos) >> 2; long addr = address + pos; return (bigEndian ? (FloatBuffer)(new ByteBufferAsFloatBufferRB(this, -1, 0, size, size, addr)) : (FloatBuffer)(new ByteBufferAsFloatBufferRL(this, -1, 0, size, size, addr))); } // double public ByteBuffer putDouble(double x) { throw new ReadOnlyBufferException(); } public ByteBuffer putDouble(int i, double x) { throw new ReadOnlyBufferException(); } public DoubleBuffer asDoubleBuffer() { int pos = position(); int size = (limit() - pos) >> 3; long addr = address + pos; return (bigEndian ? (DoubleBuffer)(new ByteBufferAsDoubleBufferRB(this, -1, 0, size, size, addr)) : (DoubleBuffer)(new ByteBufferAsDoubleBufferRL(this, -1, 0, size, size, addr))); } }