Refactor ExplicitStatement 36/109636/7
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 4 Jan 2024 16:00:06 +0000 (17:00 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 4 Jan 2024 18:32:27 +0000 (19:32 +0100)
commitf049b6a9a7c64fe2193e15d541955a69b0701888
tree24f8e1bb1c018f07d090c4851e283aa88f7a2685
parent89d9614350831bbba8e13475fc1a15567aa1ec5b
Refactor ExplicitStatement

Rather than having a superclass, just create StatementDeclarations as a
host for the two factory methods. Implementations are completely
internal and do not leak outside of this class.

We also optimize memory footprint by using two versions of each class --
one storing file/line as ints, the other one as shorts. This ends up
saving a few bytes of memory.

Eliminate the InFile specialization, as it is not used anywhere really.
Also renale atPosition() to inText() to more closely align naming.

JIRA: YANGTOOLS-1150
Change-Id: Ib5a20e45f645f00fac8d1d27c48dd4dcab16fb17
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/StatementDeclaration.java
model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/StatementDeclarations.java [new file with mode: 0644]
model/yang-model-spi/src/test/java/org/opendaylight/yangtools/yang/model/spi/meta/StatementDeclarationsTest.java [moved from parser/yang-parser-spi/src/test/java/org/opendaylight/yangtools/yang/parser/spi/source/ExplicitStatementTest.java with 57% similarity]
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/StatementContextVisitor.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/StatementSourceReferenceHandler.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangIRSourceInfoExtractor.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/ExplicitStatement.java [deleted file]