Skip to content

Commit a40cbcb

Browse files
committed
fixed Value API
1 parent 3393110 commit a40cbcb

4 files changed

Lines changed: 23 additions & 19 deletions

File tree

msgpack-core/src/main/java/org/msgpack/core/MessageUnpacker.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -625,9 +625,10 @@ public Variable unpackValue(Variable var) throws IOException {
625625
int size = unpackArrayHeader();
626626
List<Value> list = new ArrayList<Value>(size);
627627
for (int i=0; i < size; i++) {
628-
Variable e = new Variable();
629-
unpackValue(e);
630-
list.add(e);
628+
//Variable e = new Variable();
629+
//unpackValue(e);
630+
//list.add(e);
631+
list.add(unpackValue());
631632
}
632633
var.setArrayValue(list);
633634
return var;
@@ -636,10 +637,12 @@ public Variable unpackValue(Variable var) throws IOException {
636637
int size = unpackMapHeader();
637638
Map<Value,Value> map = new HashMap<Value,Value>();
638639
for (int i=0; i < size; i++) {
639-
Variable k = new Variable();
640-
unpackValue(k);
641-
Variable v = new Variable();
642-
unpackValue(v);
640+
//Variable k = new Variable();
641+
//unpackValue(k);
642+
//Variable v = new Variable();
643+
//unpackValue(v);
644+
Value k = unpackValue();
645+
Value v = unpackValue();
643646
map.put(k, v);
644647
}
645648
var.setMapValue(map);

msgpack-core/src/main/java/org/msgpack/value/Variable.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@
3737
import java.nio.charset.CharacterCodingException;
3838

3939

40-
public class Variable implements Value
41-
{
40+
public class Variable implements Value {
4241
private abstract class AbstractValueAccessor implements Value {
4342
@Override
4443
public boolean isNilValue() {
@@ -189,15 +188,15 @@ public ValueType getValueType() {
189188
}
190189
}
191190

192-
final NilValueAccessor nilAccessor = new NilValueAccessor();
193-
final BooleanValueAccessor booleanAccessor = new BooleanValueAccessor();
194-
final IntegerValueAccessor integerAccessor = new IntegerValueAccessor();
195-
final FloatValueAccessor floatAccessor = new FloatValueAccessor();
196-
final BinaryValueAccessor binaryAccessor = new BinaryValueAccessor();
197-
final StringValueAccessor stringAccessor = new StringValueAccessor();
198-
final ArrayValueAccessor arrayAccessor = new ArrayValueAccessor();
199-
final MapValueAccessor mapAccessor = new MapValueAccessor();
200-
final ExtendedValueAccessor extendedAccessor = new ExtendedValueAccessor();
191+
private final NilValueAccessor nilAccessor = new NilValueAccessor();
192+
private final BooleanValueAccessor booleanAccessor = new BooleanValueAccessor();
193+
private final IntegerValueAccessor integerAccessor = new IntegerValueAccessor();
194+
private final FloatValueAccessor floatAccessor = new FloatValueAccessor();
195+
private final BinaryValueAccessor binaryAccessor = new BinaryValueAccessor();
196+
private final StringValueAccessor stringAccessor = new StringValueAccessor();
197+
private final ArrayValueAccessor arrayAccessor = new ArrayValueAccessor();
198+
private final MapValueAccessor mapAccessor = new MapValueAccessor();
199+
private final ExtendedValueAccessor extendedAccessor = new ExtendedValueAccessor();
201200

202201
private Type type;
203202

msgpack-core/src/main/java/org/msgpack/value/impl/AbstractImmutableRawValue.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ public String getString() {
7373

7474
@Override
7575
public String stringValue() {
76+
if (decodedStringCache == null) {
77+
decodeString();
78+
}
7679
return decodedStringCache;
7780
}
7881

msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackParser.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,6 @@ public JsonToken nextToken() throws IOException, JsonParseException {
178178
nextToken = JsonToken.FIELD_NAME;
179179
}
180180
else {
181-
nextToken = JsonToken.VALUE_STRING;
182181
nextToken = JsonToken.VALUE_EMBEDDED_OBJECT;
183182
}
184183
break;

0 commit comments

Comments
 (0)