@Override public STObject fromJSONObject(JSONObject jsonObject) { STObject so = new STObject(); Iterator keys = jsonObject.keys(); while (keys.hasNext()) { String key = (String) keys.next(); Object value = jsonObject.get(key); Field fieldKey = Field.fromString(key); if (fieldKey == null) { continue; } so.putTranslated(fieldKey, value); } return STObject.formatted(so); } }
public STObject executed(STObject finalFields) { // where `this` is an AffectedNode nodeAsPrevious STObject executed = new STObject(); executed.put(Amount.TakerPays, finalFields.get(Amount.TakerPays).subtract(takerPays())); executed.put(Amount.TakerGets, finalFields.get(Amount.TakerGets).subtract(takerGets())); return executed; }
@Override public STArray fromParser(BinaryParser parser, Integer hint) { STArray stArray = new STArray(); while (!parser.end()) { Field field = parser.readField(); if (field == Field.ArrayEndMarker) { break; } STObject outer = new STObject(); // assert field.getType() == Type.STObject; outer.put(field, STObject.translate.fromParser(parser)); stArray.add(STObject.formatted(outer)); } return stArray; }
@Override public STObject fromParser(BinaryParser parser, Integer hint) { STObject so = new STObject(); TypeTranslator<SerializedType> tr; SerializedType st; Field field; Integer sizeHint; // hint, is how many bytes to parse if (hint != null) { // end hint hint = parser.pos() + hint; } while (!parser.end(hint)) { field = parser.readField(); if (field == Field.ObjectEndMarker) { break; } tr = Translators.forField(field); sizeHint = field.isVLEncoded() ? parser.readVLLength() : null; st = tr.fromParser(parser, sizeHint); if (st == null) { throw new IllegalStateException("Parsed " + field + " as null"); } so.put(field, st); } return STObject.formatted(so); }
private STObject rebuildFromMeta(boolean layerPrevious) { STObject mixed = new STObject(); boolean created = isCreatedNode(); STObject source = new STObject(wrapped.getFields()); source.put(Hash256.index, wrapped.get(Hash256.LedgerIndex)); return STObject.formatted(source); STObject changed = new STObject(); mixed.put(Field.FinalFields, changed);