in accord-maelstrom/src/main/java/accord/maelstrom/Json.java [345:397]
public Deps read(JsonReader in) throws IOException
{
KeyDeps keyDeps = KeyDeps.NONE;
RangeDeps rangeDeps = RangeDeps.NONE;
in.beginObject();
while (in.hasNext())
{
String name;
switch (name = in.nextName())
{
case "keyDeps":
{
try (KeyDeps.Builder builder = KeyDeps.builder())
{
in.beginArray();
while (in.hasNext())
{
in.beginArray();
Key key = MaelstromKey.readKey(in);
TxnId txnId = GSON.fromJson(in, TxnId.class);
builder.add(key, txnId);
in.endArray();
}
in.endArray();
keyDeps = builder.build();
}
}
break;
case "rangeDeps":
{
try (RangeDeps.Builder builder = RangeDeps.builder())
{
in.beginArray();
while (in.hasNext())
{
in.beginArray();
RoutingKey start = MaelstromKey.readRouting(in);
RoutingKey end = MaelstromKey.readRouting(in);
TxnId txnId = GSON.fromJson(in, TxnId.class);
builder.add(new MaelstromKey.Range(start, end), txnId);
in.endArray();
}
in.endArray();
rangeDeps = builder.build();
}
}
break;
default: throw new AssertionError("Unknown name: " + name);
}
}
in.endObject();
return new Deps(keyDeps, rangeDeps);
}