Move declaredInstance out of StatementContextBase 22/87222/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Jan 2020 18:27:17 +0000 (19:27 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Jan 2020 18:33:49 +0000 (19:33 +0100)
commit4159f31b29b342181a5e19b3732b36954592a8a8
tree3433881fc4567acdb5340a6837c51d6ccc7b767b
parentaf62dc4257be32f92c6e8506fa8dabfe8a9976cd
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>
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