Rabbit-R1/switch port/java/sources/com/google/gson/JsonStreamParser.java
2024-05-21 17:08:36 -04:00

75 lines
2.3 KiB
Java

package com.google.gson;
import com.google.gson.internal.Streams;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.MalformedJsonException;
import java.io.EOFException;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.Iterator;
import java.util.NoSuchElementException;
/* loaded from: classes3.dex */
public final class JsonStreamParser implements Iterator<JsonElement> {
private final Object lock;
private final JsonReader parser;
public JsonStreamParser(String str) {
this(new StringReader(str));
}
public JsonStreamParser(Reader reader) {
JsonReader jsonReader = new JsonReader(reader);
this.parser = jsonReader;
jsonReader.setLenient(true);
this.lock = new Object();
}
/* JADX WARN: Can't rename method to resolve collision */
@Override // java.util.Iterator
public JsonElement next() throws JsonParseException {
if (!hasNext()) {
throw new NoSuchElementException();
}
try {
return Streams.parse(this.parser);
} catch (JsonParseException e) {
if (e.getCause() instanceof EOFException) {
throw new NoSuchElementException();
}
throw e;
} catch (OutOfMemoryError e2) {
throw new JsonParseException("Failed parsing JSON source to Json", e2);
} catch (StackOverflowError e3) {
throw new JsonParseException("Failed parsing JSON source to Json", e3);
}
}
@Override // java.util.Iterator
public boolean hasNext() {
boolean z;
synchronized (this.lock) {
try {
try {
try {
z = this.parser.peek() != JsonToken.END_DOCUMENT;
} catch (IOException e) {
throw new JsonIOException(e);
}
} catch (MalformedJsonException e2) {
throw new JsonSyntaxException(e2);
}
} catch (Throwable th) {
throw th;
}
}
return z;
}
@Override // java.util.Iterator
public void remove() {
throw new UnsupportedOperationException();
}
}