Refactor StatementContextBase.effective access 87/93587/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 4 Nov 2020 18:48:09 +0000 (19:48 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 4 Nov 2020 22:38:07 +0000 (23:38 +0100)
commit2fab7ec3ee9b8111782fcb3ac16c983903ede09f
treec5b22fb5e1d558f22faf588ba02f43fc6425e51b
parent7bc76f41586a37b7d3d21458b2328ab36a964c10
Refactor StatementContextBase.effective access

In order to correctly synchronize substatement and stage completion
view, we need all accesses from StatementContextBase towards its
.effective field guarded.

This patch audits all callers and instantiates an
ensureEffectiveSubstatements() guard around all accesses.

We also introduce effectiveChildrenToComplete(), which communicates
the effective children which should be processed.

InferredStatementContext returns as empty list from this method
if it is not materialized. This acts as an explicit guard, which
is extensible with local state later.

JIRA: YANGTOOLS-784
Change-Id: I235bc15d315ddee71c20f3875412d8d05803a716
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
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