private State initializeWithDsl(Binder state) { this.state = state; createdAt = state.getZonedDateTime("created_at", null); expiresAt = state.getZonedDateTime("expires_at", null); revision = state.getIntOrThrow("revision"); data = state.getOrCreateBinder("data"); if (createdAt == null) { if (revision != 1) throw new IllegalArgumentException("state.created_at must be set for revisions > 1"); createdAt = definition.createdAt; } createRole("owner", state.get("owner")); createRole("creator", state.getOrThrow("created_by")); List<LinkedHashMap<String, Binder>> refList = state.getList("references", null); if (refList != null) { for (LinkedHashMap<String, Binder> refItem : refList) { Binder item = new Binder(refItem); Binder ref = item.getBinder("reference"); if (ref != null) references.add(Reference.fromDslBinder(ref, getContract())); else throw new IllegalArgumentException("Expected reference section"); } } return this; }
private Definition initializeWithDsl(Binder definition) { this.definition = definition; Role issuer = createRole("issuer", definition.getOrThrow("issuer")); createdAt = definition.getZonedDateTimeOrThrow("created_at"); Object t = definition.getOrDefault("expires_at", null); if (t != null) expiresAt = decodeDslTime(t); registerRole(issuer); data = definition.getBinder("data"); extendedType = definition.getString("extended_type", null); List<LinkedHashMap<String, Binder>> refList = definition.getList("references", null); if (refList != null) { for (LinkedHashMap<String, Binder> refItem : refList) { Binder item = new Binder(refItem); Binder ref = item.getBinder("reference"); if (ref != null) references.add(Reference.fromDslBinder(ref, getContract())); else throw new IllegalArgumentException("Expected reference section"); } } return this; }