Skip to content

Commit a1c14d6

Browse files
committed
Last parser event method removed
Signed-off-by: David Kral <[email protected]>
1 parent a6795d5 commit a1c14d6

18 files changed

+33
-75
lines changed

src/main/java/org/eclipse/yasson/internal/DeserializationContextImpl.java

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
*/
3232
public class DeserializationContextImpl extends ProcessingContext implements DeserializationContext {
3333
private final List<Runnable> delayedSetters = new ArrayList<>();
34-
private JsonParser.Event lastValueEvent;
3534
private Customization customization = ClassCustomization.empty();
3635
private Object instance;
3736

@@ -51,7 +50,6 @@ public DeserializationContextImpl(JsonbContext jsonbContext) {
5150
*/
5251
public DeserializationContextImpl(DeserializationContextImpl context) {
5352
super(context.getJsonbContext());
54-
this.lastValueEvent = context.lastValueEvent;
5553
}
5654

5755
/**
@@ -81,24 +79,6 @@ public List<Runnable> getDeferredDeserializers() {
8179
return delayedSetters;
8280
}
8381

84-
/**
85-
* Return last obtained {@link JsonParser.Event} event.
86-
*
87-
* @return last obtained event
88-
*/
89-
public JsonParser.Event getLastValueEvent() {
90-
return lastValueEvent;
91-
}
92-
93-
/**
94-
* Set last obtained {@link JsonParser.Event} event.
95-
*
96-
* @param lastValueEvent last obtained event
97-
*/
98-
public void setLastValueEvent(JsonParser.Event lastValueEvent) {
99-
this.lastValueEvent = lastValueEvent;
100-
}
101-
10282
/**
10383
* Return customization used by currently processed user defined deserializer.
10484
*
@@ -130,9 +110,9 @@ public <T> T deserialize(Type type, JsonParser parser) {
130110
@SuppressWarnings("unchecked")
131111
private <T> T deserializeItem(Type type, JsonParser parser) {
132112
try {
133-
if (lastValueEvent == null) {
134-
lastValueEvent = parser.next();
135-
checkState();
113+
if (parser.currentEvent() == null) {
114+
parser.next();
115+
checkState(parser);
136116
}
137117
ModelDeserializer<JsonParser> modelDeserializer = getJsonbContext().getChainModelCreator().deserializerChain(type);
138118
return (T) modelDeserializer.deserialize(parser, this);
@@ -143,8 +123,8 @@ private <T> T deserializeItem(Type type, JsonParser parser) {
143123
}
144124
}
145125

146-
private void checkState() {
147-
if (lastValueEvent == JsonParser.Event.KEY_NAME) {
126+
private void checkState(JsonParser parser) {
127+
if (parser.currentEvent() == JsonParser.Event.KEY_NAME) {
148128
throw new JsonbException("JsonParser has incorrect position as the first event: KEY_NAME");
149129
}
150130
}

src/main/java/org/eclipse/yasson/internal/deserializer/ArrayDeserializer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ class ArrayDeserializer implements ModelDeserializer<JsonParser> {
3535
public Object deserialize(JsonParser parser, DeserializationContextImpl context) {
3636
Collection<Object> collection = new ArrayList<>();
3737
while (parser.hasNext()) {
38-
final JsonParser.Event next = parser.next();
39-
context.setLastValueEvent(next);
40-
switch (next) {
38+
switch (parser.next()) {
4139
case START_OBJECT:
4240
case START_ARRAY:
4341
case VALUE_STRING:
@@ -51,7 +49,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
5149
case END_ARRAY:
5250
return collection;
5351
default:
54-
throw new JsonbException("Unexpected state: " + next);
52+
throw new JsonbException("Unexpected state: " + parser.currentEvent());
5553
}
5654
}
5755
return collection;

src/main/java/org/eclipse/yasson/internal/deserializer/CollectionDeserializer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ class CollectionDeserializer implements ModelDeserializer<JsonParser> {
3535
public Object deserialize(JsonParser parser, DeserializationContextImpl context) {
3636
Collection<Object> collection = (Collection<Object>) context.getInstance();
3737
while (parser.hasNext()) {
38-
final JsonParser.Event next = parser.next();
39-
context.setLastValueEvent(next);
40-
switch (next) {
38+
switch (parser.next()) {
4139
case VALUE_NULL:
4240
case START_OBJECT:
4341
case START_ARRAY:
@@ -51,7 +49,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
5149
case END_ARRAY:
5250
return collection;
5351
default:
54-
throw new JsonbException("Unexpected state: " + next);
52+
throw new JsonbException("Unexpected state: " + parser.currentEvent());
5553
}
5654
}
5755
return collection;

src/main/java/org/eclipse/yasson/internal/deserializer/ContextSwitcher.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ class ContextSwitcher implements ModelDeserializer<JsonParser> {
3333
@Override
3434
public Object deserialize(JsonParser value, DeserializationContextImpl context) {
3535
DeserializationContextImpl ctx = new DeserializationContextImpl(context);
36-
Object returnedValue = delegate.deserialize(modelDeserializer.deserialize(value, ctx), context);
37-
context.setLastValueEvent(ctx.getLastValueEvent());
38-
return returnedValue;
36+
return delegate.deserialize(modelDeserializer.deserialize(value, ctx), context);
3937
}
4038
}

src/main/java/org/eclipse/yasson/internal/deserializer/InheritanceInstanceCreator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
5858
.build();
5959
jsonParser = new JsonStructureToParserAdapter(newJsonObject);
6060
//To get to the first event
61-
Event event = jsonParser.next();
62-
context.setLastValueEvent(event);
61+
jsonParser.next();
6362
Class<?> polymorphicTypeClass;
6463
if (alias == null) {
6564
return defaultProcessor.deserialize(jsonParser, context);

src/main/java/org/eclipse/yasson/internal/deserializer/JsonbCreatorDeserializer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
6565
String key = null;
6666
Map<String, Object> paramValues = new HashMap<>();
6767
while (parser.hasNext()) {
68-
final JsonParser.Event next = parser.next();
69-
context.setLastValueEvent(next);
70-
switch (next) {
68+
switch (parser.next()) {
7169
case KEY_NAME:
7270
key = renamer.apply(parser.getString());
7371
break;
@@ -106,7 +104,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
106104
context.getDeferredDeserializers().clear();
107105
return context.getInstance();
108106
default:
109-
throw new JsonbException("Unexpected state: " + next);
107+
throw new JsonbException("Unexpected state: " + parser.currentEvent());
110108
}
111109
}
112110
return context.getInstance();

src/main/java/org/eclipse/yasson/internal/deserializer/MapDeserializer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
4343
Mode mode = Mode.NONE;
4444
State state = State.NEXT;
4545
while (parser.hasNext()) {
46-
final JsonParser.Event next = parser.next();
47-
context.setLastValueEvent(next);
48-
switch (next) {
46+
switch (parser.next()) {
4947
case KEY_NAME:
5048
mode = mode == Mode.NONE ? Mode.NORMAL : mode;
5149
if (mode == Mode.NORMAL) {
@@ -89,7 +87,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
8987
case END_ARRAY:
9088
return map;
9189
default:
92-
throw new JsonbException("Unexpected state: " + next);
90+
throw new JsonbException("Unexpected state: " + parser.currentEvent());
9391
}
9492
}
9593
return map;

src/main/java/org/eclipse/yasson/internal/deserializer/NullCheckDeserializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public NullCheckDeserializer(ModelDeserializer<JsonParser> nonNullDeserializer,
4242

4343
@Override
4444
public Object deserialize(JsonParser value, DeserializationContextImpl context) {
45-
if (context.getLastValueEvent() != JsonParser.Event.VALUE_NULL) {
45+
if (value.currentEvent() != JsonParser.Event.VALUE_NULL) {
4646
return nonNullDeserializer.deserialize(value, context);
4747
}
4848
return nullDeserializer.deserialize(null, context);

src/main/java/org/eclipse/yasson/internal/deserializer/ObjectDeserializer.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ class ObjectDeserializer implements ModelDeserializer<JsonParser> {
5050
public Object deserialize(JsonParser parser, DeserializationContextImpl context) {
5151
String key = null;
5252
while (parser.hasNext()) {
53-
final JsonParser.Event next = parser.next();
54-
context.setLastValueEvent(next);
55-
switch (next) {
53+
switch (parser.next()) {
5654
case KEY_NAME:
5755
key = renamer.apply(parser.getString());
5856
break;
@@ -78,7 +76,7 @@ public Object deserialize(JsonParser parser, DeserializationContextImpl context)
7876
case END_OBJECT:
7977
return context.getInstance();
8078
default:
81-
throw new JsonbException("Unexpected state: " + next);
79+
throw new JsonbException("Unexpected state: " + parser.currentEvent());
8280
}
8381
}
8482
return context.getInstance();

src/main/java/org/eclipse/yasson/internal/deserializer/PositionChecker.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,10 @@ private PositionChecker(Set<Event> expectedEvents,
7171

7272
@Override
7373
public Object deserialize(JsonParser value, DeserializationContextImpl context) {
74-
Event original = context.getLastValueEvent();
74+
Event original = value.currentEvent();
7575
Event startEvent = original;
7676
if (!expectedEvents.contains(startEvent)) {
7777
startEvent = value.next();
78-
context.setLastValueEvent(startEvent);
7978
if (!expectedEvents.contains(startEvent)) {
8079
throw new JsonbException("Incorrect position for processing type: " + rType + ". "
8180
+ "Received event: " + original + " "
@@ -84,10 +83,10 @@ public Object deserialize(JsonParser value, DeserializationContextImpl context)
8483
}
8584
Object o = delegate.deserialize(value, context);
8685
if (CLOSING_EVENTS.containsKey(startEvent)
87-
&& CLOSING_EVENTS.get(startEvent) != context.getLastValueEvent()) {
86+
&& CLOSING_EVENTS.get(startEvent) != value.currentEvent()) {
8887
throw new JsonbException("Incorrect parser position after processing of the type: " + rType + ". "
8988
+ "Start event: " + startEvent + " "
90-
+ "After processing event: " + context.getLastValueEvent());
89+
+ "After processing event: " + value.currentEvent());
9190
}
9291
return o;
9392
}

0 commit comments

Comments
 (0)