- JsonReader reader = new JsonReader(new StringReader(jsonString));
- NormalizedNodeResult result = new NormalizedNodeResult();
- try (NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
- JsonParserStream jsonParser = JsonParserStream
- .create(
- streamWriter,
- supplier.getShared(bindingDOMCodecServices.getRuntimeContext().getEffectiveModelContext()))) {
+ return createDataObjectFromReader(path, new StringReader(jsonString), supplier);
+ }
+
+ public T createDataObjectFromInputStream(YangInstanceIdentifier path, InputStream jsonStream,
+ JSONCodecFactorySupplier supplier) {
+ return createDataObjectFromReader(path, new InputStreamReader(jsonStream, StandardCharsets.UTF_8), supplier);
+ }
+
+ /**
+ * Create a dataObject of T type from Reader.
+ * @param path YangInstanceIdentifier
+ * @param inputReader Reader (could be all class implementing Reader) containing Json data.
+ * @param supplier RFC7951 or DRAFT_LHOTKA_NETMOD_YANG_JSON_02
+ * @return the created object.
+ */
+ @SuppressWarnings("unchecked")
+ private T createDataObjectFromReader(YangInstanceIdentifier path, Reader inputReader,
+ JSONCodecFactorySupplier supplier) {
+
+ NormalizationResultHolder result = new NormalizationResultHolder();
+ try (JsonReader reader = new JsonReader(inputReader);
+ NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
+ JsonParserStream jsonParser = JsonParserStream
+ .create(
+ streamWriter,
+ supplier.getShared(bindingDOMCodecServices
+ .getRuntimeContext().modelContext()))) {