*/
private boolean haveConfiguration;
private boolean configuration;
+ private boolean wasCheckedIfInYangDataExtensionBody;
+ private boolean isInYangDataExtensionBody;
private volatile SchemaPath schemaPath;
@Override
public boolean isConfiguration() {
+ // if this statement is within a 'yang-data' extension body, config substatements are ignored as if
+ // they were not declared. As 'yang-data' is always a top-level node, all configs that are within it are
+ // automatically true
+ if (isInYangDataExtensionBody()) {
+ return true;
+ }
+
if (haveConfiguration) {
return configuration;
}
return isConfig;
}
+ @Override
+ public boolean isInYangDataExtensionBody() {
+ if (wasCheckedIfInYangDataExtensionBody) {
+ return isInYangDataExtensionBody;
+ }
+
+ final boolean parentIsInYangDataExtensionBody = parent.isInYangDataExtensionBody();
+ if (parentIsInYangDataExtensionBody) {
+ isInYangDataExtensionBody = parentIsInYangDataExtensionBody;
+ } else {
+ isInYangDataExtensionBody = StmtContextUtils.hasYangDataExtensionParent(this);
+ }
+
+ wasCheckedIfInYangDataExtensionBody = true;
+ return isInYangDataExtensionBody;
+ }
+
@Override
public boolean isEnabledSemanticVersioning() {
return parent.isEnabledSemanticVersioning();