Add InputStreamNormalizer 93/109293/13
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 11 Dec 2023 22:49:54 +0000 (23:49 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 16 Dec 2023 08:54:39 +0000 (09:54 +0100)
commitdd2538add52f66ed69e7396f2b43996a6dbbd7a4
tree8ea9abc8754d2c08e8ab347790e3c939e5f826f7
parent7c35ff86645c21701933a9a121aa8ebea9caffdf
Add InputStreamNormalizer

This patch adds InputStreamNormalizer interface to act as a unified API
displacing direct use of XmlParserStream/JsonParserStream.

It is modelled after the needs of RFC8040, yet it is useful in general,
as it supports essentially all use cases serviced by the *ParserStreams.

This core implementation logic is in
data.util.AbstractInputStreamNormalizer, which is a subclass of
AbstractCodecFactory.

The JSON-specific part is introduced as well, with the correspondign
NormalizedNodeParserTest.

JIRA: YANGTOOLS-1415
Change-Id: Id95b609257e1a8ab57e3d61896315e3211223176
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactory.java
codec/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/InputStreamNormalizerTest.java [new file with mode: 0644]
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/InputStreamNormalizer.java [new file with mode: 0644]
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizationException.java [new file with mode: 0644]
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/AbstractInputStreamNormalizer.java [new file with mode: 0644]