public static <T> boolean read(JsonReaderAdapter<T> adapter, byte[] bytes, Collection<T> out) { if (bytes.length == 0) return false; try { out.add(adapter.fromJson(new JsonReader(bytes))); return true; } catch (Exception e) { throw exceptionReading(adapter.toString(), e); } }
String stringValue = null; reader.beginObject(); while (reader.hasNext()) { String nextName = reader.nextName(); if (reader.peekNull()) { reader.skipValue(); continue; key = reader.nextString(); } else if (nextName.equals("value")) { if (reader.peekString()) { stringValue = reader.nextString(); } else if (reader.peekBoolean()) { booleanValue = reader.nextBoolean(); } else { reader.skipValue(); reader.skipValue(); throw new IllegalArgumentException("No key at " + reader.getPath()); reader.endObject();
void readAnnotation(JsonReader reader) throws IOException { String nextName; reader.beginObject(); Long timestamp = null; String value = null; Endpoint endpoint = null; while (reader.hasNext()) { nextName = reader.nextName(); if (nextName.equals("timestamp")) { timestamp = reader.nextLong(); } else if (nextName.equals("value")) { value = reader.nextString(); } else if (nextName.equals("endpoint") && !reader.peekNull()) { endpoint = ENDPOINT_READER.fromJson(reader); } else { reader.skipValue(); } } if (timestamp == null || value == null) { throw new IllegalArgumentException("Incomplete annotation at " + reader.getPath()); } reader.endObject(); builder.addAnnotation(timestamp, value, endpoint); }
reader.beginObject(); while (reader.hasNext()) { String nextName = reader.nextName(); if (nextName.equals("traceId")) { builder.traceId(reader.nextString()); continue; } else if (nextName.equals("id")) { builder.id(reader.nextString()); continue; } else if (reader.peekNull()) { reader.skipValue(); continue; builder.parentId(reader.nextString()); } else if (nextName.equals("kind")) { builder.kind(Span.Kind.valueOf(reader.nextString())); } else if (nextName.equals("name")) { builder.name(reader.nextString()); } else if (nextName.equals("timestamp")) { builder.timestamp(reader.nextLong()); } else if (nextName.equals("duration")) { builder.duration(reader.nextLong()); } else if (nextName.equals("localEndpoint")) { builder.localEndpoint(ENDPOINT_READER.fromJson(reader)); builder.remoteEndpoint(ENDPOINT_READER.fromJson(reader)); } else if (nextName.equals("annotations")) { reader.beginArray(); while (reader.hasNext()) {
reader.beginObject(); while (reader.hasNext()) { String nextName = reader.nextName(); if (nextName.equals("traceId")) { builder.traceId(reader.nextString()); continue; } else if (nextName.equals("id")) { builder.id(reader.nextString()); continue; } else if (reader.peekNull()) { reader.skipValue(); continue; builder.name(reader.nextString()); } else if (nextName.equals("parentId")) { builder.parentId(reader.nextString()); } else if (nextName.equals("timestamp")) { builder.timestamp(reader.nextLong()); } else if (nextName.equals("duration")) { builder.duration(reader.nextLong()); } else if (nextName.equals("annotations")) { reader.beginArray(); while (reader.hasNext()) readAnnotation(reader); reader.endArray(); } else if (nextName.equals("binaryAnnotations")) { reader.beginArray(); while (reader.hasNext()) readBinaryAnnotation(reader); reader.endArray(); } else if (nextName.equals("debug")) {
@Override public Endpoint fromJson(JsonReader reader) throws IOException { Endpoint.Builder result = Endpoint.newBuilder(); reader.beginObject(); boolean readField = false; while (reader.hasNext()) { String nextName = reader.nextName(); if (reader.peekNull()) { reader.skipValue(); continue; } if (nextName.equals("serviceName")) { result.serviceName(reader.nextString()); readField = true; } else if (nextName.equals("ipv4") || nextName.equals("ipv6")) { result.parseIp(reader.nextString()); readField = true; } else if (nextName.equals("port")) { result.port(reader.nextInt()); readField = true; } else { reader.skipValue(); } } reader.endObject(); return readField ? result.build() : null; }
public boolean readList(byte[] bytes, Collection<Span> out) { if (bytes.length == 0) return false; V1SpanConverter converter = V1SpanConverter.create(); JsonReader reader = new JsonReader(bytes); try { reader.beginArray(); if (!reader.hasNext()) return false; while (reader.hasNext()) { V1Span result = fromJson(reader); converter.convert(result, out); } reader.endArray(); return true; } catch (Exception e) { throw exceptionReading("List<Span>", e); } }
public static <T> boolean readList( JsonReaderAdapter<T> adapter, byte[] bytes, Collection<T> out) { if (bytes.length == 0) return false; JsonReader reader = new JsonReader(bytes); try { reader.beginArray(); if (!reader.hasNext()) return false; while (reader.hasNext()) out.add(adapter.fromJson(reader)); reader.endArray(); return true; } catch (Exception e) { throw exceptionReading("List<" + adapter + ">", e); } }