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

Unified · Split

java/pkg/java/nio/HeapCharBuffer.java+602−0
@@ -0,0 +1,602 @@
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+/**
32+
33+ * A read/write HeapCharBuffer.
34+
35+
36+
37+
38+
39+
40+ */
41+
42+class HeapCharBuffer
43+ extends CharBuffer
44+{
45+
46+ // For speed these fields are actually declared in X-Buffer;
47+ // these declarations are here as documentation
48+ /*
49+
50+ protected final char[] hb;
51+ protected final int offset;
52+
53+ */
54+
55+ HeapCharBuffer(int cap, int lim) { // package-private
56+
57+ super(-1, 0, lim, cap, new char[cap], 0);
58+ /*
59+ hb = new char[cap];
60+ offset = 0;
61+ */
62+
63+
64+
65+
66+ }
67+
68+ HeapCharBuffer(char[] buf, int off, int len) { // package-private
69+
70+ super(-1, off, off + len, buf.length, buf, 0);
71+ /*
72+ hb = buf;
73+ offset = 0;
74+ */
75+
76+
77+
78+
79+ }
80+
81+ protected HeapCharBuffer(char[] buf,
82+ int mark, int pos, int lim, int cap,
83+ int off)
84+ {
85+
86+ super(mark, pos, lim, cap, buf, off);
87+ /*
88+ hb = buf;
89+ offset = off;
90+ */
91+
92+
93+
94+
95+ }
96+
97+ public CharBuffer slice() {
98+ return new HeapCharBuffer(hb,
99+ -1,
100+ 0,
101+ this.remaining(),
102+ this.remaining(),
103+ this.position() + offset);
104+ }
105+
106+ public CharBuffer duplicate() {
107+ return new HeapCharBuffer(hb,
108+ this.markValue(),
109+ this.position(),
110+ this.limit(),
111+ this.capacity(),
112+ offset);
113+ }
114+
115+ public CharBuffer asReadOnlyBuffer() {
116+
117+ return new HeapCharBufferR(hb,
118+ this.markValue(),
119+ this.position(),
120+ this.limit(),
121+ this.capacity(),
122+ offset);
123+
124+
125+
126+ }
127+
128+
129+
130+ protected int ix(int i) {
131+ return i + offset;
132+ }
133+
134+ public char get() {
135+ return hb[ix(nextGetIndex())];
136+ }
137+
138+ public char get(int i) {
139+ return hb[ix(checkIndex(i))];
140+ }
141+
142+ public CharBuffer get(char[] dst, int offset, int length) {
143+ // [Inferno] <
144+ //checkBounds(offset, length, dst.length);
145+ // [Inferno] =
146+ Buffer.checkBounds(offset, length, dst.length);
147+ // [Inferno] >
148+ if (length > remaining())
149+ throw new BufferUnderflowException();
150+ System.arraycopy(hb, ix(position()), dst, offset, length);
151+ position(position() + length);
152+ return this;
153+ }
154+
155+ public boolean isDirect() {
156+ return false;
157+ }
158+
159+
160+
161+ public boolean isReadOnly() {
162+ return false;
163+ }
164+
165+ public CharBuffer put(char x) {
166+
167+ hb[ix(nextPutIndex())] = x;
168+ return this;
169+
170+
171+
172+ }
173+
174+ public CharBuffer put(int i, char x) {
175+
176+ hb[ix(checkIndex(i))] = x;
177+ return this;
178+
179+
180+
181+ }
182+
183+ public CharBuffer put(char[] src, int offset, int length) {
184+ // [Inferno] <
185+ //checkBounds(offset, length, src.length);
186+ // [Inferno] =
187+ Buffer.checkBounds(offset, length, src.length);
188+ // [Inferno] >
189+ if (length > remaining())
190+ throw new BufferOverflowException();
191+ System.arraycopy(src, offset, hb, ix(position()), length);
192+ position(position() + length);
193+ return this;
194+
195+
196+
197+ }
198+
199+ public CharBuffer put(CharBuffer src) {
200+
201+ if (src instanceof HeapCharBuffer) {
202+ if (src == this)
203+ throw new IllegalArgumentException();
204+ HeapCharBuffer sb = (HeapCharBuffer)src;
205+ int n = sb.remaining();
206+ if (n > remaining())
207+ throw new BufferOverflowException();
208+ System.arraycopy(sb.hb, sb.ix(sb.position()),
209+ hb, ix(position()), n);
210+ sb.position(sb.position() + n);
211+ position(position() + n);
212+ } else if (src.isDirect()) {
213+ int n = src.remaining();
214+ if (n > remaining())
215+ throw new BufferOverflowException();
216+ src.get(hb, ix(position()), n);
217+ position(position() + n);
218+ } else {
219+ super.put(src);
220+ }
221+ return this;
222+
223+
224+
225+ }
226+
227+ public CharBuffer compact() {
228+
229+ System.arraycopy(hb, ix(position()), hb, ix(0), remaining());
230+ position(remaining());
231+ limit(capacity());
232+ discardMark();
233+ return this;
234+
235+
236+
237+ }
238+
239+
240+
241+
242+
243+
244+
245+
246+
247+
248+
249+
250+
251+
252+
253+
254+
255+
256+
257+
258+
259+
260+
261+
262+
263+
264+
265+
266+
267+
268+
269+
270+
271+
272+
273+
274+
275+
276+
277+
278+
279+
280+
281+
282+
283+
284+
285+
286+
287+
288+
289+
290+
291+
292+
293+
294+
295+
296+
297+
298+
299+
300+
301+
302+
303+
304+
305+
306+
307+
308+
309+
310+
311+
312+
313+
314+
315+
316+
317+
318+
319+
320+
321+
322+
323+
324+
325+
326+
327+
328+
329+
330+
331+
332+
333+
334+
335+
336+
337+
338+
339+
340+
341+
342+
343+
344+
345+
346+
347+
348+
349+
350+
351+
352+
353+
354+
355+
356+
357+
358+
359+
360+
361+
362+
363+
364+
365+
366+
367+
368+
369+
370+
371+
372+
373+
374+
375+
376+
377+
378+
379+
380+
381+
382+
383+
384+
385+
386+
387+
388+
389+
390+
391+
392+
393+
394+
395+
396+
397+
398+
399+
400+
401+
402+
403+
404+
405+
406+
407+
408+
409+
410+
411+
412+
413+
414+
415+
416+
417+
418+
419+
420+
421+
422+
423+
424+
425+
426+
427+
428+
429+
430+
431+
432+
433+
434+
435+
436+
437+
438+
439+
440+
441+
442+
443+
444+
445+
446+
447+
448+
449+
450+
451+
452+
453+
454+
455+
456+
457+
458+
459+
460+
461+
462+
463+
464+
465+
466+
467+
468+
469+
470+
471+
472+
473+
474+
475+
476+
477+
478+
479+
480+
481+
482+
483+
484+
485+
486+
487+
488+
489+
490+
491+
492+
493+
494+
495+
496+
497+
498+
499+
500+
501+
502+
503+
504+
505+
506+
507+
508+
509+
510+
511+
512+
513+
514+
515+
516+
517+
518+
519+
520+
521+
522+
523+
524+
525+
526+
527+
528+
529+
530+
531+
532+
533+
534+
535+
536+
537+
538+
539+
540+
541+
542+
543+
544+
545+
546+
547+
548+
549+
550+
551+
552+
553+
554+
555+
556+
557+
558+
559+
560+
561+
562+
563+
564+
565+
566+ String toString(int start, int end) { // package-private
567+ try {
568+ return new String(hb, start + offset, end - start);
569+ } catch (StringIndexOutOfBoundsException x) {
570+ throw new IndexOutOfBoundsException();
571+ }
572+ }
573+
574+
575+ // --- Methods to support CharSequence ---
576+
577+ public CharBuffer subSequence(int start, int end) {
578+ if ((start < 0)
579+ || (end > length())
580+ || (start > end))
581+ throw new IndexOutOfBoundsException();
582+ int pos = position();
583+ return new HeapCharBuffer(hb,
584+ -1,
585+ pos + start,
586+ pos + end,
587+ capacity(),
588+ offset);
589+ }
590+
591+
592+
593+
594+
595+
596+ public ByteOrder order() {
597+ return ByteOrder.nativeOrder();
598+ }
599+
600+
601+
602+}

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