0
|
1 //
|
|
2 // MessagePack for Java
|
|
3 //
|
|
4 // Copyright (C) 2009 - 2013 FURUHASHI Sadayuki
|
|
5 //
|
|
6 // Licensed under the Apache License, Version 2.0 (the "License");
|
|
7 // you may not use this file except in compliance with the License.
|
|
8 // You may obtain a copy of the License at
|
|
9 //
|
|
10 // http://www.apache.org/licenses/LICENSE-2.0
|
|
11 //
|
|
12 // Unless required by applicable law or agreed to in writing, software
|
|
13 // distributed under the License is distributed on an "AS IS" BASIS,
|
|
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15 // See the License for the specific language governing permissions and
|
|
16 // limitations under the License.
|
|
17 //
|
|
18 package org.msgpack.util.json;
|
|
19
|
|
20 import java.io.ByteArrayInputStream;
|
|
21 import java.io.Reader;
|
|
22 import java.io.InputStreamReader;
|
|
23 import java.nio.ByteBuffer;
|
|
24 import org.msgpack.MessagePack;
|
|
25 import org.msgpack.unpacker.BufferUnpacker;
|
|
26
|
|
27 public class JSONBufferUnpacker extends JSONUnpacker implements BufferUnpacker {
|
|
28 private static final int DEFAULT_BUFFER_SIZE = 512; // TODO default buffer size
|
|
29
|
|
30 public JSONBufferUnpacker() {
|
|
31 this(DEFAULT_BUFFER_SIZE);
|
|
32 }
|
|
33
|
|
34 public JSONBufferUnpacker(int bufferSize) {
|
|
35 this(new MessagePack(), bufferSize);
|
|
36 }
|
|
37
|
|
38 public JSONBufferUnpacker(MessagePack msgpack) {
|
|
39 this(msgpack, DEFAULT_BUFFER_SIZE);
|
|
40 }
|
|
41
|
|
42 public JSONBufferUnpacker(MessagePack msgpack, int bufferSize) {
|
|
43 super(msgpack, newEmptyReader());
|
|
44 }
|
|
45
|
|
46 @Override
|
|
47 public JSONBufferUnpacker wrap(byte[] b) {
|
|
48 return wrap(b, 0, b.length);
|
|
49 }
|
|
50
|
|
51 @Override
|
|
52 public JSONBufferUnpacker wrap(byte[] b, int off, int len) {
|
|
53 ByteArrayInputStream in = new ByteArrayInputStream(b, off, len);
|
|
54 this.in = new InputStreamReader(in);
|
|
55 return this;
|
|
56 }
|
|
57
|
|
58 @Override
|
|
59 public JSONBufferUnpacker wrap(ByteBuffer buf) {
|
|
60 throw new UnsupportedOperationException(
|
|
61 "JSONBufferUnpacker doesn't support wrap(ByteBuffer buf)");
|
|
62 }
|
|
63
|
|
64 @Override
|
|
65 public JSONBufferUnpacker feed(byte[] b) {
|
|
66 throw new UnsupportedOperationException(
|
|
67 "JSONBufferUnpacker doesn't support feed()");
|
|
68 }
|
|
69
|
|
70 @Override
|
|
71 public JSONBufferUnpacker feed(byte[] b, boolean reference) {
|
|
72 throw new UnsupportedOperationException(
|
|
73 "JSONBufferUnpacker doesn't support feed()");
|
|
74 }
|
|
75
|
|
76 @Override
|
|
77 public JSONBufferUnpacker feed(byte[] b, int off, int len) {
|
|
78 throw new UnsupportedOperationException(
|
|
79 "JSONBufferUnpacker doesn't support feed()");
|
|
80 }
|
|
81
|
|
82 @Override
|
|
83 public JSONBufferUnpacker feed(byte[] b, int off, int len, boolean reference) {
|
|
84 throw new UnsupportedOperationException(
|
|
85 "JSONBufferUnpacker doesn't support feed()");
|
|
86 }
|
|
87
|
|
88 @Override
|
|
89 public JSONBufferUnpacker feed(ByteBuffer buf) {
|
|
90 throw new UnsupportedOperationException(
|
|
91 "JSONBufferUnpacker doesn't support feed()");
|
|
92 }
|
|
93
|
|
94 @Override
|
|
95 public JSONBufferUnpacker feed(ByteBuffer buf, boolean reference) {
|
|
96 throw new UnsupportedOperationException(
|
|
97 "JSONBufferUnpacker doesn't support feed()");
|
|
98 }
|
|
99
|
|
100 @Override
|
|
101 public int getBufferSize() {
|
|
102 throw new UnsupportedOperationException(
|
|
103 "JSONBufferUnpacker doesn't support getBufferSize()");
|
|
104 }
|
|
105
|
|
106 @Override
|
|
107 public void copyReferencedBuffer() {
|
|
108 throw new UnsupportedOperationException(
|
|
109 "JSONBufferUnpacker doesn't support copyReferencedBuffer()");
|
|
110 }
|
|
111
|
|
112 @Override
|
|
113 public void clear() {
|
|
114 reset();
|
|
115 in = newEmptyReader();
|
|
116 }
|
|
117
|
|
118 private static Reader newEmptyReader() {
|
|
119 return new InputStreamReader(new ByteArrayInputStream(new byte[0]));
|
|
120 }
|
|
121 }
|