Intern low-cardinality statement arguments
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / Utils.java
index e80d39d64210079722f7a4cc9501219c4eec8912..abcce90d5d7f35460547207e16fa08ca9cab2630 100644 (file)
@@ -119,7 +119,7 @@ public final class Utils {
         final List<String> keyTokens = SPACE_SPLITTER.splitToList(value);
 
         // to detect if key contains duplicates
-        if ((new HashSet<>(keyTokens)).size() < keyTokens.size()) {
+        if (new HashSet<>(keyTokens).size() < keyTokens.size()) {
             // FIXME: report all duplicate keys
             throw new SourceException(ctx.getStatementSourceReference(), "Duplicate value in list key: %s", value);
         }
@@ -404,17 +404,27 @@ public final class Utils {
             ctx.getStatementSourceReference(), "String '%s' is not valid deviate argument", deviateKeyword);
     }
 
+    static String internBoolean(final String input) {
+        if ("true".equals(input)) {
+            return "true";
+        } else if ("false".equals(input)) {
+            return "false";
+        } else {
+            return input;
+        }
+    }
+
     public static Status parseStatus(final String value) {
         switch (value) {
-        case "current":
-            return Status.CURRENT;
-        case "deprecated":
-            return Status.DEPRECATED;
-        case "obsolete":
-            return Status.OBSOLETE;
-        default:
-            LOG.warn("Invalid 'status' statement: {}", value);
-            return null;
+            case "current":
+                return Status.CURRENT;
+            case "deprecated":
+                return Status.DEPRECATED;
+            case "obsolete":
+                return Status.OBSOLETE;
+            default:
+                LOG.warn("Invalid 'status' statement: {}", value);
+                return null;
         }
     }