BUG-582: use shared thread-safe SimpleDateFormat 87/7387/2
authorRobert Varga <rovarga@cisco.com>
Sun, 25 May 2014 15:50:59 +0000 (17:50 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Mon, 26 May 2014 19:45:40 +0000 (19:45 +0000)
This concentrates the per-parser DateTimeFormat into the pre-existing
yang-common one, lowering resource parser resource usage, while
remaining thread-safe.

Change-Id: I30d677ba4c66196bb5df551349c1d8abc31702b9
Signed-off-by: Robert Varga <rovarga@cisco.com>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/BasicValidations.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/YangModelBasicValidationListener.java

index a6619dbbcc09881cd9a4f283b8268c9cdad6fb04..062fc2f5a26df4f1a7a0caef8c53077e2cdc8baf 100644 (file)
@@ -7,9 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.validator;
 
-import java.text.DateFormat;
 import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Set;
@@ -19,6 +17,7 @@ import java.util.regex.Pattern;
 import org.antlr.v4.runtime.ParserRuleContext;
 import org.antlr.v4.runtime.tree.ParseTree;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Yang_version_stmtContext;
+import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
 
 import com.google.common.collect.Sets;
@@ -36,8 +35,8 @@ final class BasicValidations {
     private BasicValidations() {
     }
 
-    static void checkNotPresentBoth(ParseTree parent, Class<? extends ParseTree> childType1,
-            Class<? extends ParseTree> childType2) {
+    static void checkNotPresentBoth(final ParseTree parent, final Class<? extends ParseTree> childType1,
+            final Class<? extends ParseTree> childType2) {
         if (BasicValidations.checkPresentChildOfTypeSafe(parent, childType1, true)
                 && BasicValidations.checkPresentChildOfTypeSafe(parent, childType2, false)) {
             ValidationUtil.ex(ValidationUtil.f("(In (sub)module:%s) Both %s and %s statement present in %s:%s",
@@ -47,7 +46,7 @@ final class BasicValidations {
         }
     }
 
-    static void checkOnlyPermittedValues(ParseTree ctx, Set<String> permittedValues) {
+    static void checkOnlyPermittedValues(final ParseTree ctx, final Set<String> permittedValues) {
         String mandatory = ValidationUtil.getName(ctx);
         String rootParentName = ValidationUtil.getRootParentName(ctx);
 
@@ -59,7 +58,7 @@ final class BasicValidations {
         }
     }
 
-    static void checkUniquenessInNamespace(ParseTree stmt, Set<String> uniques) {
+    static void checkUniquenessInNamespace(final ParseTree stmt, final Set<String> uniques) {
         String name = ValidationUtil.getName(stmt);
         String rootParentName = ValidationUtil.getRootParentName(stmt);
 
@@ -74,13 +73,13 @@ final class BasicValidations {
      * Check if only one module or submodule is present in session(one yang
      * file)
      */
-    static void checkOnlyOneModulePresent(String moduleName, String globalId) {
+    static void checkOnlyOneModulePresent(final String moduleName, final String globalId) {
         if (globalId != null) {
             ValidationUtil.ex(ValidationUtil.f("Multiple (sub)modules per file"));
         }
     }
 
-    static void checkPresentYangVersion(ParseTree ctx, String moduleName) {
+    static void checkPresentYangVersion(final ParseTree ctx, final String moduleName) {
         if (!checkPresentChildOfTypeSafe(ctx, Yang_version_stmtContext.class, true)) {
             ValidationUtil.ex(ValidationUtil.f(
                     "Yang version statement not present in module:%s, Validating as yang version:%s", moduleName,
@@ -88,25 +87,25 @@ final class BasicValidations {
         }
     }
 
-    static void checkDateFormat(ParseTree stmt, DateFormat format) {
+    static void checkDateFormat(final ParseTree stmt) {
         try {
-            format.parse(ValidationUtil.getName(stmt));
+            SimpleDateFormatUtil.getRevisionFormat().parse(ValidationUtil.getName(stmt));
         } catch (ParseException e) {
             String exceptionMessage = ValidationUtil.f(
                     "(In (sub)module:%s) %s:%s, invalid date format expected date format is:%s",
                     ValidationUtil.getRootParentName(stmt), ValidationUtil.getSimpleStatementName(stmt.getClass()),
-                    ValidationUtil.getName(stmt), new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+                    ValidationUtil.getName(stmt), SimpleDateFormatUtil.getRevisionFormat().format(new Date()));
             ValidationUtil.ex(exceptionMessage);
         }
     }
 
     private static Pattern identifierPattern = Pattern.compile("[a-zA-Z_][a-zA-Z0-9_.-]*");
 
-    static void checkIdentifier(ParseTree statement) {
+    static void checkIdentifier(final ParseTree statement) {
         checkIdentifierInternal(statement, ValidationUtil.getName(statement));
     }
 
-    static void checkIdentifierInternal(ParseTree statement, String name) {
+    static void checkIdentifierInternal(final ParseTree statement, final String name) {
         if (!identifierPattern.matcher(name).matches()) {
 
             String message = ValidationUtil.f("%s statement identifier:%s is not in required format:%s",
@@ -124,11 +123,11 @@ final class BasicValidations {
 
     private static Pattern prefixedIdentifierPattern = Pattern.compile("(.+):(.+)");
 
-    static void checkPrefixedIdentifier(ParseTree statement) {
+    static void checkPrefixedIdentifier(final ParseTree statement) {
         checkPrefixedIdentifierInternal(statement, ValidationUtil.getName(statement));
     }
 
-    private static void checkPrefixedIdentifierInternal(ParseTree statement, String id) {
+    private static void checkPrefixedIdentifierInternal(final ParseTree statement, final String id) {
         Matcher matcher = prefixedIdentifierPattern.matcher(id);
 
         if (matcher.matches()) {
@@ -146,7 +145,7 @@ final class BasicValidations {
         }
     }
 
-    static void checkSchemaNodeIdentifier(ParseTree statement) {
+    static void checkSchemaNodeIdentifier(final ParseTree statement) {
         String id = ValidationUtil.getName(statement);
 
         try {
@@ -166,8 +165,8 @@ final class BasicValidations {
         String getMessage();
     }
 
-    static void checkPresentChildOfTypeInternal(ParseTree parent, Set<Class<? extends ParseTree>> expectedChildType,
-            MessageProvider message, boolean atMostOne) {
+    static void checkPresentChildOfTypeInternal(final ParseTree parent, final Set<Class<? extends ParseTree>> expectedChildType,
+            final MessageProvider message, final boolean atMostOne) {
         if (!checkPresentChildOfTypeSafe(parent, expectedChildType, atMostOne)) {
             String str = atMostOne ? "(Expected exactly one statement) " + message.getMessage() : message.getMessage();
             ValidationUtil.ex(str);
@@ -175,7 +174,7 @@ final class BasicValidations {
     }
 
     static void checkPresentChildOfType(final ParseTree parent, final Class<? extends ParseTree> expectedChildType,
-            boolean atMostOne) {
+            final boolean atMostOne) {
 
         // Construct message in checkPresentChildOfTypeInternal only if
         // validaiton fails, not in advance
@@ -208,10 +207,10 @@ final class BasicValidations {
      */
     private static class MessageProviderForSetOfChildTypes implements MessageProvider {
 
-        private Set<Class<? extends ParseTree>> expectedChildTypes;
-        private ParseTree parent;
+        private final Set<Class<? extends ParseTree>> expectedChildTypes;
+        private final ParseTree parent;
 
-        public MessageProviderForSetOfChildTypes(Set<Class<? extends ParseTree>> expectedChildTypes, ParseTree parent) {
+        public MessageProviderForSetOfChildTypes(final Set<Class<? extends ParseTree>> expectedChildTypes, final ParseTree parent) {
             this.expectedChildTypes = expectedChildTypes;
             this.parent = parent;
         }
@@ -235,7 +234,7 @@ final class BasicValidations {
     };
 
     static void checkPresentChildOfTypes(final ParseTree parent,
-            final Set<Class<? extends ParseTree>> expectedChildTypes, boolean atMostOne) {
+            final Set<Class<? extends ParseTree>> expectedChildTypes, final boolean atMostOne) {
 
         // Construct message in checkPresentChildOfTypeInternal only if
         // validaiton fails, not in advance
@@ -243,23 +242,23 @@ final class BasicValidations {
         checkPresentChildOfTypeInternal(parent, expectedChildTypes, message, atMostOne);
     }
 
-    static boolean checkPresentChildOfTypeSafe(ParseTree parent, Set<Class<? extends ParseTree>> expectedChildType,
-            boolean atMostOne) {
+    static boolean checkPresentChildOfTypeSafe(final ParseTree parent, final Set<Class<? extends ParseTree>> expectedChildType,
+            final boolean atMostOne) {
 
         int foundChildrenOfType = ValidationUtil.countPresentChildrenOfType(parent, expectedChildType);
 
         return atMostOne ? foundChildrenOfType == 1 ? true : false : foundChildrenOfType != 0 ? true : false;
     }
 
-    static boolean checkPresentChildOfTypeSafe(ParseTree parent, Class<? extends ParseTree> expectedChildType,
-            boolean atMostOne) {
+    static boolean checkPresentChildOfTypeSafe(final ParseTree parent, final Class<? extends ParseTree> expectedChildType,
+            final boolean atMostOne) {
 
         int foundChildrenOfType = ValidationUtil.countPresentChildrenOfType(parent, expectedChildType);
 
         return atMostOne ? foundChildrenOfType == 1 ? true : false : foundChildrenOfType != 0 ? true : false;
     }
 
-    static List<String> getAndCheckUniqueKeys(ParseTree ctx) {
+    static List<String> getAndCheckUniqueKeys(final ParseTree ctx) {
         String key = ValidationUtil.getName(ctx);
         ParseTree parent = ctx.getParent();
         String rootParentName = ValidationUtil.getRootParentName(ctx);
index 967769a619d13102e298954a5b86cfe535b3246f..5de58554294fc32a127c8f13f2f0e567ac771c05 100644 (file)
@@ -9,12 +9,11 @@ package org.opendaylight.yangtools.yang.validator;
 
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.util.HashSet;
 import java.util.Set;
 
 import org.antlr.v4.runtime.tree.ParseTree;
-import org.opendaylight.yangtools.antlrv4.code.gen.*;
+import org.opendaylight.yangtools.antlrv4.code.gen.YangParser;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Anyxml_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Argument_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Augment_stmtContext;
@@ -58,6 +57,7 @@ import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Typedef_stmtContex
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Unique_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Uses_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Yin_element_argContext;
+import org.opendaylight.yangtools.antlrv4.code.gen.YangParserBaseListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -70,21 +70,12 @@ import com.google.common.collect.Sets;
  */
 final class YangModelBasicValidationListener extends YangParserBaseListener {
     private static final Logger LOGGER = LoggerFactory.getLogger(YangModelBasicValidationListener.class);
-    private final DateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
-
-    private final Set<String> uniquePrefixes;
-    private final Set<String> uniqueImports;
-    private final Set<String> uniqueIncludes;
+    private final Set<String> uniquePrefixes = new HashSet<>();
+    private final Set<String> uniqueImports = new HashSet<>();
+    private final Set<String> uniqueIncludes = new HashSet<>();
 
     private String globalModuleId;
 
-    YangModelBasicValidationListener() {
-        super();
-        uniquePrefixes = Sets.newHashSet();
-        uniqueImports = Sets.newHashSet();
-        uniqueIncludes = Sets.newHashSet();
-    }
-
     /**
      * Constraints:
      * <ol>
@@ -95,7 +86,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterModule_stmt(Module_stmtContext ctx) {
+    public void enterModule_stmt(final Module_stmtContext ctx) {
 
         BasicValidations.checkIdentifier(ctx);
 
@@ -116,7 +107,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterSubmodule_stmt(Submodule_stmtContext ctx) {
+    public void enterSubmodule_stmt(final Submodule_stmtContext ctx) {
 
         BasicValidations.checkIdentifier(ctx);
 
@@ -135,7 +126,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterSubmodule_header_stmts(Submodule_header_stmtsContext ctx) {
+    public void enterSubmodule_header_stmts(final Submodule_header_stmtsContext ctx) {
         BasicValidations.checkPresentChildOfType(ctx, Belongs_to_stmtContext.class, true);
 
         // check Yang version present, if not log
@@ -154,7 +145,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterModule_header_stmts(Module_header_stmtsContext ctx) {
+    public void enterModule_header_stmts(final Module_header_stmtsContext ctx) {
         String moduleName = ValidationUtil.getRootParentName(ctx);
 
         BasicValidations.checkPresentChildOfType(ctx, Namespace_stmtContext.class, true);
@@ -175,8 +166,8 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterRevision_stmt(Revision_stmtContext ctx) {
-        BasicValidations.checkDateFormat(ctx, SIMPLE_DATE_FORMAT);
+    public void enterRevision_stmt(final Revision_stmtContext ctx) {
+        BasicValidations.checkDateFormat(ctx);
 
     }
 
@@ -188,7 +179,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterBelongs_to_stmt(Belongs_to_stmtContext ctx) {
+    public void enterBelongs_to_stmt(final Belongs_to_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
 
         BasicValidations.checkPresentChildOfType(ctx, Prefix_stmtContext.class, true);
@@ -201,7 +192,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterNamespace_stmt(Namespace_stmtContext ctx) {
+    public void enterNamespace_stmt(final Namespace_stmtContext ctx) {
         String namespaceName = ValidationUtil.getName(ctx);
         String rootParentName = ValidationUtil.getRootParentName(ctx);
 
@@ -223,7 +214,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterImport_stmt(Import_stmtContext ctx) {
+    public void enterImport_stmt(final Import_stmtContext ctx) {
 
         BasicValidations.checkIdentifier(ctx);
 
@@ -240,8 +231,8 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterRevision_date_stmt(Revision_date_stmtContext ctx) {
-        BasicValidations.checkDateFormat(ctx, SIMPLE_DATE_FORMAT);
+    public void enterRevision_date_stmt(final Revision_date_stmtContext ctx) {
+        BasicValidations.checkDateFormat(ctx);
     }
 
     /**
@@ -253,7 +244,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterInclude_stmt(Include_stmtContext ctx) {
+    public void enterInclude_stmt(final Include_stmtContext ctx) {
 
         BasicValidations.checkIdentifier(ctx);
 
@@ -267,7 +258,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterYang_version_stmt(YangParser.Yang_version_stmtContext ctx) {
+    public void enterYang_version_stmt(final YangParser.Yang_version_stmtContext ctx) {
         String version = ValidationUtil.getName(ctx);
         String rootParentName = ValidationUtil.getRootParentName(ctx);
         if (!version.equals(BasicValidations.SUPPORTED_YANG_VERSION)) {
@@ -285,7 +276,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterPrefix_stmt(Prefix_stmtContext ctx) {
+    public void enterPrefix_stmt(final Prefix_stmtContext ctx) {
 
         BasicValidations.checkIdentifier(ctx);
 
@@ -300,7 +291,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterTypedef_stmt(Typedef_stmtContext ctx) {
+    public void enterTypedef_stmt(final Typedef_stmtContext ctx) {
 
         BasicValidations.checkIdentifier(ctx);
 
@@ -314,7 +305,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterType_stmt(Type_stmtContext ctx) {
+    public void enterType_stmt(final Type_stmtContext ctx) {
         BasicValidations.checkPrefixedIdentifier(ctx);
     }
 
@@ -325,7 +316,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterContainer_stmt(Container_stmtContext ctx) {
+    public void enterContainer_stmt(final Container_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -338,7 +329,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterLeaf_stmt(Leaf_stmtContext ctx) {
+    public void enterLeaf_stmt(final Leaf_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
 
         BasicValidations.checkPresentChildOfType(ctx, Type_stmtContext.class, true);
@@ -354,7 +345,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterLeaf_list_stmt(Leaf_list_stmtContext ctx) {
+    public void enterLeaf_list_stmt(final Leaf_list_stmtContext ctx) {
 
         BasicValidations.checkIdentifier(ctx);
 
@@ -370,7 +361,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterOrdered_by_arg(Ordered_by_argContext ctx) {
+    public void enterOrdered_by_arg(final Ordered_by_argContext ctx) {
         BasicValidations.checkOnlyPermittedValues(ctx, PERMITTED_ORDER_BY_ARGS);
     }
 
@@ -381,7 +372,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterList_stmt(List_stmtContext ctx) {
+    public void enterList_stmt(final List_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
         // TODO check: "if config==true then key must be present" could be
         // performed
@@ -394,7 +385,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterKey_stmt(Key_stmtContext ctx) {
+    public void enterKey_stmt(final Key_stmtContext ctx) {
         BasicValidations.getAndCheckUniqueKeys(ctx);
     }
 
@@ -405,7 +396,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterUnique_stmt(Unique_stmtContext ctx) {
+    public void enterUnique_stmt(final Unique_stmtContext ctx) {
         BasicValidations.getAndCheckUniqueKeys(ctx);
     }
 
@@ -417,7 +408,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterChoice_stmt(Choice_stmtContext ctx) {
+    public void enterChoice_stmt(final Choice_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
 
         BasicValidations.checkNotPresentBoth(ctx, Mandatory_stmtContext.class, Default_stmtContext.class);
@@ -431,7 +422,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterCase_stmt(Case_stmtContext ctx) {
+    public void enterCase_stmt(final Case_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -444,7 +435,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterMandatory_arg(Mandatory_argContext ctx) {
+    public void enterMandatory_arg(final Mandatory_argContext ctx) {
         BasicValidations.checkOnlyPermittedValues(ctx, PERMITTED_BOOLEAN_ARGS);
     }
 
@@ -455,7 +446,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterAnyxml_stmt(Anyxml_stmtContext ctx) {
+    public void enterAnyxml_stmt(final Anyxml_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -466,7 +457,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterGrouping_stmt(Grouping_stmtContext ctx) {
+    public void enterGrouping_stmt(final Grouping_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -477,7 +468,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterUses_stmt(Uses_stmtContext ctx) {
+    public void enterUses_stmt(final Uses_stmtContext ctx) {
         BasicValidations.checkPrefixedIdentifier(ctx);
     }
 
@@ -488,7 +479,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterRefine_stmt(Refine_stmtContext ctx) {
+    public void enterRefine_stmt(final Refine_stmtContext ctx) {
         BasicValidations.checkSchemaNodeIdentifier(ctx);
     }
 
@@ -499,7 +490,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterRpc_stmt(Rpc_stmtContext ctx) {
+    public void enterRpc_stmt(final Rpc_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -510,7 +501,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterNotification_stmt(Notification_stmtContext ctx) {
+    public void enterNotification_stmt(final Notification_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -521,7 +512,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterAugment_stmt(Augment_stmtContext ctx) {
+    public void enterAugment_stmt(final Augment_stmtContext ctx) {
         BasicValidations.checkSchemaNodeIdentifier(ctx);
     }
 
@@ -532,7 +523,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterIdentity_stmt(Identity_stmtContext ctx) {
+    public void enterIdentity_stmt(final Identity_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -543,7 +534,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterBase_stmt(Base_stmtContext ctx) {
+    public void enterBase_stmt(final Base_stmtContext ctx) {
         BasicValidations.checkPrefixedIdentifier(ctx);
 
     }
@@ -555,7 +546,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterYin_element_arg(Yin_element_argContext ctx) {
+    public void enterYin_element_arg(final Yin_element_argContext ctx) {
         BasicValidations.checkOnlyPermittedValues(ctx, PERMITTED_BOOLEAN_ARGS);
     }
 
@@ -566,7 +557,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterExtension_stmt(Extension_stmtContext ctx) {
+    public void enterExtension_stmt(final Extension_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -577,7 +568,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterArgument_stmt(Argument_stmtContext ctx) {
+    public void enterArgument_stmt(final Argument_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
     }
 
@@ -588,7 +579,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterFeature_stmt(Feature_stmtContext ctx) {
+    public void enterFeature_stmt(final Feature_stmtContext ctx) {
         BasicValidations.checkIdentifier(ctx);
 
     }
@@ -600,7 +591,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterIf_feature_stmt(If_feature_stmtContext ctx) {
+    public void enterIf_feature_stmt(final If_feature_stmtContext ctx) {
         BasicValidations.checkPrefixedIdentifier(ctx);
     }
 
@@ -612,7 +603,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterDeviation_stmt(Deviation_stmtContext ctx) {
+    public void enterDeviation_stmt(final Deviation_stmtContext ctx) {
         BasicValidations.checkSchemaNodeIdentifier(ctx);
 
         Set<Class<? extends ParseTree>> types = Sets.newHashSet();
@@ -628,7 +619,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterConfig_arg(Config_argContext ctx) {
+    public void enterConfig_arg(final Config_argContext ctx) {
         BasicValidations.checkOnlyPermittedValues(ctx, PERMITTED_BOOLEAN_ARGS);
     }
 
@@ -641,7 +632,7 @@ final class YangModelBasicValidationListener extends YangParserBaseListener {
      * </ol>
      */
     @Override
-    public void enterStatus_arg(Status_argContext ctx) {
+    public void enterStatus_arg(final Status_argContext ctx) {
         BasicValidations.checkOnlyPermittedValues(ctx, PERMITTED_STATUS_ARGS);
     }