diff --git a/yangkit-model-impl/src/main/java/org/yangcentral/yangkit/model/impl/stmt/IfFeatureImpl.java b/yangkit-model-impl/src/main/java/org/yangcentral/yangkit/model/impl/stmt/IfFeatureImpl.java index 2bed2879..c4f5aab6 100644 --- a/yangkit-model-impl/src/main/java/org/yangcentral/yangkit/model/impl/stmt/IfFeatureImpl.java +++ b/yangkit-model-impl/src/main/java/org/yangcentral/yangkit/model/impl/stmt/IfFeatureImpl.java @@ -144,47 +144,53 @@ public boolean evaluate() { YangSchema yangSchema = schemaContext.getYangSchema(); if (yangSchema == null) { return true; - } else { - Module curModule = this.feature.getContext().getCurModule(); - List moduleSets = yangSchema.getModuleSets(); + } + if(this.feature == null){ + validate(); + if(this.feature == null){ + return false; + } + } - for (ModuleSet moduleSet : moduleSets) { - boolean matchedModule = false; + Module curModule = this.feature.getContext().getCurModule(); + List moduleSets = yangSchema.getModuleSets(); - for (YangModuleDescription moduleDescription : moduleSet.getModules()) { - if (curModule instanceof MainModule) { - if (moduleDescription.getModuleId().equals(new ModuleId(curModule.getArgStr(), curModule.getCurRevisionDate().isPresent() ? curModule.getCurRevisionDate().get() : null))) { - matchedModule = true; - } - } else { + for (ModuleSet moduleSet : moduleSets) { + boolean matchedModule = false; + + for (YangModuleDescription moduleDescription : moduleSet.getModules()) { + if (curModule instanceof MainModule) { + if (moduleDescription.getModuleId().equals(new ModuleId(curModule.getArgStr(), curModule.getCurRevisionDate().isPresent() ? curModule.getCurRevisionDate().get() : null))) { + matchedModule = true; + } + } else { - for (ModuleId subModuleDescription : moduleDescription.getSubModules()) { - if (subModuleDescription.equals(new ModuleId(curModule.getArgStr(), curModule.getCurRevisionDate().isPresent() ? curModule.getCurRevisionDate().get() : null))) { - matchedModule = true; - break; - } + for (ModuleId subModuleDescription : moduleDescription.getSubModules()) { + if (subModuleDescription.equals(new ModuleId(curModule.getArgStr(), curModule.getCurRevisionDate().isPresent() ? curModule.getCurRevisionDate().get() : null))) { + matchedModule = true; + break; } } + } - if (matchedModule) { - Iterator iterator = moduleDescription.getFeatures().iterator(); + if (matchedModule) { + Iterator iterator = moduleDescription.getFeatures().iterator(); - String featureStr; - do { - if (!iterator.hasNext()) { - return false; - } + String featureStr; + do { + if (!iterator.hasNext()) { + return false; + } - featureStr = iterator.next(); - } while (!this.feature.getArgStr().equals(featureStr)); + featureStr = iterator.next(); + } while (!this.feature.getArgStr().equals(featureStr)); - return true; - } + return true; } } - - return false; } + + return false; } public ValidatorResult validate() {