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/ByteBufferAsCharBufferL.java (1 of 84 files). Show all

Unified · Split

java/pkg/java/nio/ByteBufferAsCharBufferL.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
28package java.nio;
29
30
31class ByteBufferAsCharBufferL // package-private
32 extends CharBuffer
33{
34
35
36
37 protected final ByteBuffer bb;
38 protected final int offset;
39
40
41
42 ByteBufferAsCharBufferL(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 ByteBufferAsCharBufferL(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 ByteBufferAsCharBufferL(bb, -1, 0, rem, rem, off);
80 }
81
82 public CharBuffer duplicate() {
83 return new ByteBufferAsCharBufferL(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 ByteBufferAsCharBufferRL(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.getCharL(bb, ix(nextGetIndex()));
112 }
113
114 public char get(int i) {
115 return Bits.getCharL(bb, ix(checkIndex(i)));
116 }
117
118
119
120 public CharBuffer put(char x) {
121
122 Bits.putCharL(bb, ix(nextPutIndex()), x);
123 return this;
124
125
126
127 }
128
129 public CharBuffer put(int i, char x) {
130
131 Bits.putCharL(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 ByteBufferAsCharBufferL(bb,
200 -1,
201 pos + start,
202 pos + end,
203 capacity(),
204 offset);
205 }
206
207
208
209
210 public ByteOrder order() {
211
212
213
214
215 return ByteOrder.LITTLE_ENDIAN;
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