72 lines
2.2 KiB
Java
72 lines
2.2 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: classes2.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 final 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 final boolean hasNext() {
|
||
|
boolean z;
|
||
|
synchronized (this.lock) {
|
||
|
try {
|
||
|
try {
|
||
|
z = this.parser.peek() != JsonToken.END_DOCUMENT;
|
||
|
} catch (IOException e) {
|
||
|
throw new JsonIOException(e);
|
||
|
}
|
||
|
} catch (MalformedJsonException e2) {
|
||
|
throw new JsonSyntaxException(e2);
|
||
|
}
|
||
|
}
|
||
|
return z;
|
||
|
}
|
||
|
|
||
|
@Override // java.util.Iterator
|
||
|
public final void remove() {
|
||
|
throw new UnsupportedOperationException();
|
||
|
}
|
||
|
}
|