Move declaredInstance out of StatementContextBase 55/87255/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Jan 2020 18:27:17 +0000 (19:27 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 29 Jan 2020 11:03:23 +0000 (12:03 +0100)
commit309569041fb3a539ea7683729e357197956f0d8a
tree7a14f7563cb89597dfd03d65a21fe6783d586919
parentd121fc53d32b799c493cbe7da6b9d061fe7b9564
Move declaredInstance out of StatementContextBase

This caching field is useful, except it is clear that only the
original instance really needs it, as InferredStatementContext
will just walk through prototype to acquire it from there.

Move the field into AbstractResumedStatement, i.e.
originally-declared statements, taking buildDeclared() method
implementation there.

This reduces the size of StatementContextBase by one reference
field, which helps InferredStatementContext, as it can now hold
pointer to the original context without increasing object size.

Having the original context allows us to more efficiently shortcut
to the original definition -- which is useful for other methods
as well.

JIRA: YANGTOOLS-784
Change-Id: Ib8767a892b8c8aaa0e3f7da10ac794167269fff6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 4159f31b29b342181a5e19b3732b36954592a8a8)
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/AbstractResumedStatement.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java