Scripted update of if statements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / RefineUtils.java
index bfc4928bf35c3f39820d87f62bbe8bdc000d4eef..b3a0aa7623f23c70d0744b6474e7494edd3cc619 100644 (file)
@@ -7,11 +7,11 @@
  */
 package org.opendaylight.yangtools.yang.parser.builder.impl;
 
-import java.lang.reflect.Method;
 import java.util.List;
-
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
+import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.DocumentedNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
@@ -23,19 +23,22 @@ import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 /**
  * Utility class with helper methods to perform operations tied to refine
  * process.
+ *
+ * @deprecated Pre-Beryllium implementation, scheduled for removal.
  */
+@Deprecated
 public final class RefineUtils {
 
     private RefineUtils() {
     }
 
-    public static void refineLeaf(final LeafSchemaNodeBuilder leaf, final RefineBuilder refine) {
+    private static void refineLeaf(final LeafSchemaNodeBuilder leaf, final RefineBuilder refine) {
         String defaultStr = refine.getDefaultStr();
         Boolean mandatory = refine.isMandatory();
         MustDefinition must = refine.getMust();
         List<UnknownSchemaNodeBuilder> unknownNodes = refine.getUnknownNodes();
 
-        if (defaultStr != null && !("".equals(defaultStr))) {
+        if (defaultStr != null && !defaultStr.isEmpty()) {
             leaf.setDefaultStr(defaultStr);
         }
         if (mandatory != null) {
@@ -52,7 +55,7 @@ public final class RefineUtils {
         }
     }
 
-    public static void refineContainer(final ContainerSchemaNodeBuilder container, final RefineBuilder refine) {
+    private static void refineContainer(final ContainerSchemaNodeBuilder container, final RefineBuilder refine) {
         Boolean presence = refine.isPresence();
         MustDefinition must = refine.getMust();
         List<UnknownSchemaNodeBuilder> unknownNodes = refine.getUnknownNodes();
@@ -71,7 +74,7 @@ public final class RefineUtils {
         }
     }
 
-    public static void refineList(final ListSchemaNodeBuilder list, final RefineBuilder refine) {
+    private static void refineList(final ListSchemaNodeBuilder list, final RefineBuilder refine) {
         MustDefinition must = refine.getMust();
         Integer min = refine.getMinElements();
         Integer max = refine.getMaxElements();
@@ -186,7 +189,6 @@ public final class RefineUtils {
         } else if (node instanceof ContainerSchemaNodeBuilder) {
             checkRefineDefault(node, defaultStr, moduleName, line);
             checkRefineMandatory(node, mandatory, moduleName, line);
-            checkRefineMust(node, must, moduleName, line);
             checkRefineMinMax(name, min, max, moduleName, line);
         } else if (node instanceof LeafSchemaNodeBuilder) {
             checkRefinePresence(node, presence, moduleName, line);
@@ -258,35 +260,42 @@ public final class RefineUtils {
     private static void refineDefault(final Builder node, final RefineBuilder refine) {
         final String moduleName = refine.getModuleName();
         final int line = refine.getLine();
-        Class<? extends Builder> cls = node.getClass();
+
+
+        final DocumentedNodeBuilder documentedNode;
+        if (node instanceof DocumentedNodeBuilder) {
+            documentedNode = ((DocumentedNodeBuilder) node);
+        } else {
+            documentedNode = null;
+        }
 
         String description = refine.getDescription();
+
+
         if (description != null) {
-            try {
-                Method method = cls.getDeclaredMethod("setDescription", String.class);
-                method.invoke(node, description);
-            } catch (Exception e) {
-                throw new YangParseException(moduleName, line, "Cannot refine description in " + cls.getName(), e);
+            if (documentedNode != null) {
+                documentedNode.setDescription(description);
+            } else {
+                throw new YangParseException(moduleName, line, String.format("Cannot refine description in of target %s",refine.getTargetPathString()));
             }
+
         }
 
         String reference = refine.getReference();
         if (reference != null) {
-            try {
-                Method method = cls.getDeclaredMethod("setReference", String.class);
-                method.invoke(node, reference);
-            } catch (Exception e) {
-                throw new YangParseException(moduleName, line, "Cannot refine reference in " + cls.getName(), e);
+            if (documentedNode != null) {
+                documentedNode.setReference(reference);
+            } else {
+                throw new YangParseException(moduleName, line, String.format("Cannot refine reference in of target %s",refine.getTargetPathString()));
             }
         }
 
         Boolean config = refine.isConfiguration();
         if (config != null) {
-            try {
-                Method method = cls.getDeclaredMethod("setConfiguration", Boolean.TYPE);
-                method.invoke(node, config);
-            } catch (Exception e) {
-                throw new YangParseException(moduleName, line, "Cannot refine config in " + cls.getName(), e);
+            if (node instanceof DataSchemaNodeBuilder) {
+                ((DataSchemaNodeBuilder) node).setConfiguration(config);
+            } else {
+                throw new YangParseException(moduleName, line, String.format("Cannot refine config of target %s ",refine.getTargetPathString()));
             }
         }
     }