/** * Deserialize the content of a json {@code String} as the DTO object deferred from its mockery to perform the validation. * @see DTO.Behaviour */ @Override public void validate(Metadata<DTOJson> metadata, Object candidate) throws AssertionError { if (candidate == null) { dtoMockery.validate(DTOMetadata(metadata), candidate); } Metadata<DTO> dtoMetadata = DTOMetadata(metadata); Type type = dtoMockery.supportedTypes(dtoMetadata)[0]; String json = (String) candidate; JolyglotGenerics jolyglot = jolyglot(metadata); Object object; try { object = jolyglot.fromJson(json, type); } catch (RuntimeException e) { object = null; } dtoMockery.validate(DTOMetadata(metadata), object); }
/** * Serialize the DTO legal object deferred from its mockery as a json {@code String}. * @see DTO.Behaviour */ @Override public Object legal(Metadata<DTOJson> metadata) { JolyglotGenerics jolyglot = jolyglot(metadata); Object seed = dtoMockery.legal(DTOMetadata(metadata)); return jolyglot.toJson(seed); }