BUG 2412 - restconf @POST invokeRpc for notification subscription
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / restconf / impl / ControllerContext.java
index 5566f01674a3112e2f0dd09c8287b17a9e0752b4..a0b05150a84344a8c0cff9ca08472ac3067f2498 100644 (file)
@@ -31,6 +31,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
 import javax.ws.rs.core.Response.Status;
+import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationException;
 import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation;
 import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer;
 import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint;
@@ -955,6 +956,26 @@ public class ControllerContext implements SchemaContextListener {
         }
     }
 
+    public YangInstanceIdentifier toXpathRepresentation(final YangInstanceIdentifier instanceIdentifier) {
+        try {
+            return dataNormalizer.toLegacy(instanceIdentifier);
+        } catch (NullPointerException e) {
+            throw new RestconfDocumentedException("Data normalizer isn't set. Normalization isn't possible", e);
+        } catch (DataNormalizationException e) {
+            throw new RestconfDocumentedException("Data normalizer failed. Normalization isn't possible", e);
+        }
+    }
+
+    public boolean isNodeMixin(YangInstanceIdentifier path) {
+        final DataNormalizationOperation<?> operation;
+        try {
+            operation = dataNormalizer.getOperation(path);
+        } catch (DataNormalizationException e) {
+            throw new RestconfDocumentedException("Data normalizer failed. Normalization isn't possible", e);
+        }
+        return operation.isMixin();
+    }
+
     public DataNormalizationOperation<?> getRootOperation() {
         return dataNormalizer.getRootOperation();
     }