@Override public void deserialize(Binder data, BiDeserializer deserializer) { this.unsAddresses = deserializer.deserialize(data.getList("addresses", new ArrayList<>())); Object originObj = data.get("origin"); if (originObj != null) this.unsOrigin = deserializer.deserialize(originObj); }
/** * Read next object from the stream * * @param <T> expected object type * * @return next object casted to (T) * * @throws IOException */ public <T> T read() throws IOException { Object x = get(); if (deserializer == null || !(x instanceof Binder || x instanceof Collection)) return (T) x; return deserializer.deserialize(x); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) throws IOException { createdAt = deserializer.deserialize(data.getZonedDateTimeOrThrow("createdAt")); subscriptionsSet.addAll(deserializer.deserialize(data.getListOrThrow("subscriptions"))); storagesSet.addAll(deserializer.deserialize(data.getListOrThrow("storages"))); nameRecordsSet.addAll(deserializer.deserialize(data.getListOrThrow("nameRecords"))); contract = (NSmartContract) Contract.fromPackedTransaction(data.getBinary("contract")); kvStore = deserializer.deserialize(data.getBinderOrThrow("kvStore")); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { name = data.getStringOrThrow("name"); role = deserializer.deserialize(data.get("role")); params = data; }
public static <T> T deserialize(Map map) { return new BiDeserializer().deserialize(Binder.from(map)); }
/** * Update the map deserialziing it's values - e.g. in place. Saves memory but has strong side effects of discarding * source data. * * @param map to update * @param deserializer to use to deserialize map values */ public void deserializeInPlace(Map map, BiDeserializer deserializer) { map.forEach((key, value) -> { if (value instanceof Map) { String typeName = (String) ((Map) value).get("__type"); if (typeName == null) typeName = (String) ((Map) value).get("__t"); if (typeName == null) deserializeInPlace((Map) value, deserializer); else { BiAdapter adapter = adapters.get(typeName); if (adapter != null) { map.put(key, adapter.deserialize(Binder.from(value), deserializer)); } } } else if (value instanceof Collection) { map.put(key, ((Collection) value).stream() .map(x -> deserializer.deserialize(x)) .collect(Collectors.toList()) ); } }); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { super.deserialize(data, deserializer); // role can have keys - this should actually be refactored to let role // hold other roles and so on. List keyList = data.getList("keys", null); keyRecords.clear(); if (keyList != null) { keyList.forEach(kr -> { addKeyRecord(deserializer.deserialize(kr)); }); } List anonIdList = data.getList("anonIds", null); anonymousIds.clear(); if (anonIdList != null) { for (Object aid : anonIdList) { AnonymousId anonymousId = deserializer.deserialize(aid); anonymousIds.add(anonymousId); } } List keyAddrList = data.getList("addresses", null); keyAddresses.clear(); if (keyAddrList != null) { for (Object keyAddr : keyAddrList) { KeyAddress ka = deserializer.deserialize(keyAddr); keyAddresses.add(ka); } } }
public static Binder findScriptBinder(Binder data, HashId hashIdToSearch) { BiDeserializer biDeserializer = new BiDeserializer(); if (data == null) return null; List<Binder> res = new ArrayList<>(); data.forEach((k, v) -> { if (v instanceof Binder) { Binder vBinder = (Binder) v; HashId hashId = biDeserializer.deserialize(vBinder.getOrDefault("hash_id", null)); if (hashIdToSearch.equals(hashId)) res.add(vBinder); } }); return res.size()>0 ? res.get(0) : null; }
public void deserializeWith(Binder data, BiDeserializer d) { registerRole(d.deserialize(data.getBinderOrThrow("issuer"))); createdAt = data.getZonedDateTimeOrThrow("created_at"); expiresAt = data.getZonedDateTime("expires_at", null); extendedType = data.getString("extended_type", null); this.data = d.deserialize(data.getBinder("data", Binder.EMPTY)); references = d.deserialize(data.getList("references", null)); Map<String, Permission> perms = d.deserialize(data.getOrThrow("permissions")); perms.forEach((id, perm) -> { perm.setId(id); addPermission(perm); }); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { name = data.getString("name"); nameReduced = data.getString("nameReduced"); description = data.getString("description",null); url = data.getString("url",null); expiresAt = deserializer.deserialize(data.getZonedDateTimeOrThrow("expiresAt")); entries.addAll(deserializer.deserialize(data.getListOrThrow("entries"))); } }
public void deserealizeWith(Binder data, BiDeserializer d) { createdAt = data.getZonedDateTimeOrThrow("created_at"); expiresAt = data.getZonedDateTime("expires_at", null); revision = data.getIntOrThrow("revision"); this.references = d.deserialize(data.getList("references", null)); if (revision <= 0) throw new IllegalArgumentException("illegal revision number: " + revision); Role r = registerRole(d.deserialize(data.getBinderOrThrow("owner"))); if (!r.getName().equals("owner")) throw new IllegalArgumentException("bad owner role name"); r = registerRole(d.deserialize(data.getBinderOrThrow("created_by"))); if (!r.getName().equals("creator")) throw new IllegalArgumentException("bad creator role name"); this.data = data.getBinder("data", Binder.EMPTY); branchId = data.getString("branch_id", null); parent = d.deserialize(data.get("parent")); origin = d.deserialize(data.get("origin")); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) throws IOException { hashId = deserializer.deserialize(data.get("hashId")); isChainSubscription = data.getBooleanOrThrow("isChainSubscription"); expiresAt = data.getZonedDateTimeOrThrow("expiresAt"); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { try {origin = deserializer.deserialize(data.get("origin"));} catch (Exception e) {origin = null;} shortAddress = data.getString("shortAddress",null); longAddress = data.getString("longAddress",null); } }
public static <T> T deserialize(Map map) { return new BiDeserializer(getInstance()).deserialize(Binder.from(map)); }
private void deserializeForUns(BiDeserializer deserializer) { storedNames = deserializer.deserialize(getStateData().getList(NAMES_FIELD_NAME, null)); paidU = getStateData().getInt(PAID_U_FIELD_NAME, 0); prepaidNamesForDays = getStateData().getDouble(PREPAID_ND_FIELD_NAME); long prepaidFromSeconds = getStateData().getLong(PREPAID_ND_FROM_TIME_FIELD_NAME, 0); prepaidFrom = ZonedDateTime.ofInstant(Instant.ofEpochSecond(prepaidFromSeconds), ZoneId.systemDefault()); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { publicKey = deserializer.deserialize(data.getBinderOrThrow("publicKey")); publicHost = data.getStringOrThrow("publicHost"); String host = data.getStringOrThrow("host"); nodeAddress = new InetSocketAddress(host, data.getIntOrThrow("udpPort")); clientAddress = new InetSocketAddress(host, data.getIntOrThrow("clientPort")); serverAddress = new InetSocketAddress(host, data.getIntOrThrow("serverPort")); nodeName = data.getStringOrThrow("name"); number = data.getIntOrThrow("number"); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { super.deserialize(data, deserializer); this.quorumSize = data.getInt("quorumSize", 0); Object mode = data.getOrDefault("mode", null); if (mode != null) { this.mode = Mode.valueOf((String) mode); } List<Binder> roles = data.getList("roles", null); if (roles != null) { this.roles.clear(); roles.forEach(role -> addRole(deserializer.deserialize(role))); } }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { name = data.getStringOrThrow("name"); comment = data.getString("comment", null); contract = deserializer.getContext(); Binder required = data.getBinder("required"); if(required != null) { if(required.containsKey(ALL_OF.name())) { requiredAllReferences.addAll(deserializer.deserialize(required.getArray(ALL_OF.name()))); } if(required.containsKey(ANY_OF.name())) { requiredAnyReferences.addAll(deserializer.deserialize(required.getArray(ANY_OF.name()))); } } }
@Override public synchronized void deserialize(Binder data, BiDeserializer ds) throws IOException { payload = TransactionPack.unpack(data.getBinary("payload")); payment = TransactionPack.unpack(data.getBinary("payment")); hashId = ds.deserialize(data.get("hashId")); prepareForNode(); }
@Override public void deserialize(Binder data, BiDeserializer deserializer) { this.unsReducedName = data.containsKey(NAME_REDUCED_FIELD_NAME) ? data.getString(NAME_REDUCED_FIELD_NAME) : null; this.unsName = data.getString(NAME_FIELD_NAME); this.unsDescription = data.getString(DESCRIPTION_FIELD_NAME); this.unsURL = data.getString(URL_FIELD_NAME); this.unsRecords = deserializer.deserialize(data.getList(ENTRIES_FIELD_NAME, null)); }