History

Added some missing classes from java/nio, fixed some bad things

Dmitry Kabak (userdima committed 13 years ago

Commit 7d47bc81 parent b1be22084 files · +40111 −23Browse files

Showing the changes to java/pkg/java/nio/ByteBufferAsCharBufferB.java (1 of 84 files). Show all

Unified · Split

java/pkg/java/nio/ByteBufferAsCharBufferB.java+219−0
@@ -0,0 +1,219 @@
1+/*
2+ * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+
26+// -- This file was mechanically generated: Do not edit! -- //
27+
28+package java.nio;
29+
30+
31+class ByteBufferAsCharBufferB // package-private
32+ extends CharBuffer
33+{
34+
35+
36+
37+ protected final ByteBuffer bb;
38+ protected final int offset;
39+
40+
41+
42+ ByteBufferAsCharBufferB(ByteBuffer bb) { // package-private
43+
44+ super(-1, 0,
45+ bb.remaining() >> 1,
46+ bb.remaining() >> 1);
47+ this.bb = bb;
48+ // enforce limit == capacity
49+ int cap = this.capacity();
50+ this.limit(cap);
51+ int pos = this.position();
52+ assert (pos <= cap);
53+ offset = pos;
54+
55+
56+
57+ }
58+
59+ ByteBufferAsCharBufferB(ByteBuffer bb,
60+ int mark, int pos, int lim, int cap,
61+ int off)
62+ {
63+
64+ super(mark, pos, lim, cap);
65+ this.bb = bb;
66+ offset = off;
67+
68+
69+
70+ }
71+
72+ public CharBuffer slice() {
73+ int pos = this.position();
74+ int lim = this.limit();
75+ assert (pos <= lim);
76+ int rem = (pos <= lim ? lim - pos : 0);
77+ int off = (pos << 1) + offset;
78+ assert (off >= 0);
79+ return new ByteBufferAsCharBufferB(bb, -1, 0, rem, rem, off);
80+ }
81+
82+ public CharBuffer duplicate() {
83+ return new ByteBufferAsCharBufferB(bb,
84+ this.markValue(),
85+ this.position(),
86+ this.limit(),
87+ this.capacity(),
88+ offset);
89+ }
90+
91+ public CharBuffer asReadOnlyBuffer() {
92+
93+ return new ByteBufferAsCharBufferRB(bb,
94+ this.markValue(),
95+ this.position(),
96+ this.limit(),
97+ this.capacity(),
98+ offset);
99+
100+
101+
102+ }
103+
104+
105+
106+ protected int ix(int i) {
107+ return (i << 1) + offset;
108+ }
109+
110+ public char get() {
111+ return Bits.getCharB(bb, ix(nextGetIndex()));
112+ }
113+
114+ public char get(int i) {
115+ return Bits.getCharB(bb, ix(checkIndex(i)));
116+ }
117+
118+
119+
120+ public CharBuffer put(char x) {
121+
122+ Bits.putCharB(bb, ix(nextPutIndex()), x);
123+ return this;
124+
125+
126+
127+ }
128+
129+ public CharBuffer put(int i, char x) {
130+
131+ Bits.putCharB(bb, ix(checkIndex(i)), x);
132+ return this;
133+
134+
135+
136+ }
137+
138+ public CharBuffer compact() {
139+
140+ int pos = position();
141+ int lim = limit();
142+ assert (pos <= lim);
143+ int rem = (pos <= lim ? lim - pos : 0);
144+
145+ ByteBuffer db = bb.duplicate();
146+ db.limit(ix(lim));
147+ db.position(ix(0));
148+ ByteBuffer sb = db.slice();
149+ sb.position(pos << 1);
150+ sb.compact();
151+ position(rem);
152+ limit(capacity());
153+ discardMark();
154+ return this;
155+
156+
157+
158+ }
159+
160+ public boolean isDirect() {
161+ return bb.isDirect();
162+ }
163+
164+ public boolean isReadOnly() {
165+ return false;
166+ }
167+
168+
169+
170+ public String toString(int start, int end) {
171+ if ((end > limit()) || (start > end))
172+ throw new IndexOutOfBoundsException();
173+ try {
174+ int len = end - start;
175+ char[] ca = new char[len];
176+ CharBuffer cb = CharBuffer.wrap(ca);
177+ CharBuffer db = this.duplicate();
178+ db.position(start);
179+ db.limit(end);
180+ cb.put(db);
181+ return new String(ca);
182+ } catch (StringIndexOutOfBoundsException x) {
183+ throw new IndexOutOfBoundsException();
184+ }
185+ }
186+
187+
188+ // --- Methods to support CharSequence ---
189+
190+ public CharBuffer subSequence(int start, int end) {
191+ int pos = position();
192+ int lim = limit();
193+ assert (pos <= lim);
194+ pos = (pos <= lim ? pos : lim);
195+ int len = lim - pos;
196+
197+ if ((start < 0) || (end > len) || (start > end))
198+ throw new IndexOutOfBoundsException();
199+ return new ByteBufferAsCharBufferB(bb,
200+ -1,
201+ pos + start,
202+ pos + end,
203+ capacity(),
204+ offset);
205+ }
206+
207+
208+
209+
210+ public ByteOrder order() {
211+
212+ return ByteOrder.BIG_ENDIAN;
213+
214+
215+
216+
217+ }
218+
219+}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t