Skip to content

Commit f3bb2d7

Browse files
marschalljbescos
andauthored
Implement JsonStructureParser.currentEvent() (#134)
Co-authored-by: Jorge Bescos Gascon <[email protected]>
1 parent 47b371b commit f3bb2d7

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

impl/src/main/java/org/eclipse/parsson/JsonStructureParser.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ public boolean hasNext() {
9797
return !((state == Event.END_OBJECT || state == Event.END_ARRAY) && scopeStack.isEmpty());
9898
}
9999

100+
@Override
101+
public Event currentEvent() {
102+
return state;
103+
}
104+
100105
@Override
101106
public Event next() {
102107
if (!hasNext()) {
@@ -121,6 +126,7 @@ private void transition() {
121126
state = Event.END_ARRAY;
122127
}
123128
} else {
129+
124130
// ObjectScope
125131
if (state == Event.KEY_NAME) {
126132
nextStateAndEndOfTheObjectOrArray();

impl/src/test/java/org/eclipse/parsson/tests/JsonParserTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,12 @@ static void testEmptyArrayIterator(JsonParser parser) {
180180
Assertions.assertTrue(parser.hasNext());
181181
Assertions.assertTrue(parser.hasNext());
182182
Assertions.assertEquals(Event.START_ARRAY, parser.next());
183+
Assertions.assertEquals(Event.START_ARRAY, parser.currentEvent());
183184

184185
Assertions.assertTrue(parser.hasNext());
185186
Assertions.assertTrue(parser.hasNext());
186187
Assertions.assertEquals(Event.END_ARRAY, parser.next());
188+
Assertions.assertEquals(Event.END_ARRAY, parser.currentEvent());
187189

188190
Assertions.assertFalse(parser.hasNext());
189191
Assertions.assertFalse(parser.hasNext());
@@ -212,7 +214,9 @@ void testEmptyArrayIterator2Structure() {
212214

213215
static void testEmptyArrayIterator2(JsonParser parser) {
214216
Assertions.assertEquals(Event.START_ARRAY, parser.next());
217+
Assertions.assertEquals(Event.START_ARRAY, parser.currentEvent());
215218
Assertions.assertEquals(Event.END_ARRAY, parser.next());
219+
Assertions.assertEquals(Event.END_ARRAY, parser.currentEvent());
216220
try {
217221
parser.next();
218222
Assertions.fail("Should have thrown a NoSuchElementException");
@@ -237,7 +241,9 @@ void testEmptyArrayIterator3Structure() {
237241

238242
static void testEmptyArrayIterator3(JsonParser parser) {
239243
Assertions.assertEquals(Event.START_ARRAY, parser.next());
244+
Assertions.assertEquals(Event.START_ARRAY, parser.currentEvent());
240245
Assertions.assertEquals(Event.END_ARRAY, parser.next());
246+
Assertions.assertEquals(Event.END_ARRAY, parser.currentEvent());
241247
Assertions.assertFalse(parser.hasNext());
242248
try {
243249
parser.next();
@@ -521,13 +527,21 @@ void testNestedArrayStructure() {
521527

522528
static void testNestedArray(JsonParser parser) {
523529
Assertions.assertEquals(Event.START_ARRAY, parser.next());
530+
Assertions.assertEquals(Event.START_ARRAY, parser.currentEvent());
524531
Assertions.assertEquals(Event.START_ARRAY, parser.next());
532+
Assertions.assertEquals(Event.START_ARRAY, parser.currentEvent());
525533
Assertions.assertEquals(Event.END_ARRAY, parser.next());
534+
Assertions.assertEquals(Event.END_ARRAY, parser.currentEvent());
526535
Assertions.assertEquals(Event.START_ARRAY, parser.next());
536+
Assertions.assertEquals(Event.START_ARRAY, parser.currentEvent());
527537
Assertions.assertEquals(Event.START_ARRAY, parser.next());
538+
Assertions.assertEquals(Event.START_ARRAY, parser.currentEvent());
528539
Assertions.assertEquals(Event.END_ARRAY, parser.next());
540+
Assertions.assertEquals(Event.END_ARRAY, parser.currentEvent());
529541
Assertions.assertEquals(Event.END_ARRAY, parser.next());
542+
Assertions.assertEquals(Event.END_ARRAY, parser.currentEvent());
530543
Assertions.assertEquals(Event.END_ARRAY, parser.next());
544+
Assertions.assertEquals(Event.END_ARRAY, parser.currentEvent());
531545
Assertions.assertFalse(parser.hasNext());
532546
Assertions.assertFalse(parser.hasNext());
533547
}

0 commit comments

Comments
 (0)