Proxy MD-SAL interfaces in DOMMountPointServiceImpl
[controller.git] / opendaylight / md-sal / sal-dom-api / src / main / java / org / opendaylight / controller / md / sal / dom / api / DOMRpcIdentifier.java
index 671671c90514691c1f1b8f8b1afd6c003678a2a7..63e646debd7a884699c73ff4fb881d851ec8892e 100644 (file)
@@ -9,12 +9,10 @@ package org.opendaylight.controller.md.sal.dom.api;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
-import java.util.Collections;
 import java.util.Objects;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
 /**
@@ -25,8 +23,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
  */
 public abstract class DOMRpcIdentifier {
 
-    private static final YangInstanceIdentifier GLOBAL_CONTEXT = YangInstanceIdentifier.create(Collections.<PathArgument>emptySet());
-
     private static final class Global extends DOMRpcIdentifier {
         private Global(final @Nonnull SchemaPath type) {
             super(type);
@@ -34,7 +30,7 @@ public abstract class DOMRpcIdentifier {
 
         @Override
         public YangInstanceIdentifier getContextReference() {
-            return GLOBAL_CONTEXT;
+            return YangInstanceIdentifier.EMPTY;
         }
     }
 
@@ -75,12 +71,20 @@ public abstract class DOMRpcIdentifier {
      * @param contextReference Context reference, null means a global RPC identifier.
      * @return A global RPC identifier, guaranteed to be non-null.
      */
-    public static @Nonnull DOMRpcIdentifier create(final @Nonnull SchemaPath type, final @Nullable YangInstanceIdentifier contextReference) {
-        if (contextReference == null || GLOBAL_CONTEXT.equals(contextReference)) {
+    public static @Nonnull DOMRpcIdentifier create(final @Nonnull SchemaPath type,
+            final @Nullable YangInstanceIdentifier contextReference) {
+        if (contextReference == null || contextReference.isEmpty()) {
             return new Global(type);
-        } else {
-            return new Local(type, contextReference);
         }
+        return new Local(type, contextReference);
+    }
+
+    public static DOMRpcIdentifier fromMdsal(final org.opendaylight.mdsal.dom.api.DOMRpcIdentifier mdsal) {
+        return create(mdsal.getType(), mdsal.getContextReference());
+    }
+
+    public org.opendaylight.mdsal.dom.api.DOMRpcIdentifier toMdsal() {
+        return org.opendaylight.mdsal.dom.api.DOMRpcIdentifier.create(type, getContextReference());
     }
 
     /**
@@ -104,7 +108,7 @@ public abstract class DOMRpcIdentifier {
         final int prime = 31;
         int result = 1;
         result = prime * result + type.hashCode();
-        result = prime * result + (getContextReference() == null ? 0 : getContextReference().hashCode());
+        result = prime * result + getContextReference().hashCode();
         return result;
     }
 
@@ -125,6 +129,7 @@ public abstract class DOMRpcIdentifier {
 
     @Override
     public final String toString() {
-        return MoreObjects.toStringHelper(this).omitNullValues().add("type", type).add("contextReference", getContextReference()).toString();
+        return MoreObjects.toStringHelper(this).omitNullValues().add("type", type).add("contextReference",
+                getContextReference()).toString();
     }
 }