X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fapi%2FDOMRpcIdentifier.java;h=63e646debd7a884699c73ff4fb881d851ec8892e;hp=4e6c7a5f7f2964dc8b4655c7a3d73d508409ae5a;hb=e1ede0942d3bff1f1b150816e6bfa96ed9366c20;hpb=c31509c7a6630e54a9f9749a643fed5e1a1ad380 diff --git a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/md/sal/dom/api/DOMRpcIdentifier.java b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/md/sal/dom/api/DOMRpcIdentifier.java index 4e6c7a5f7f..63e646debd 100644 --- a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/md/sal/dom/api/DOMRpcIdentifier.java +++ b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/md/sal/dom/api/DOMRpcIdentifier.java @@ -22,6 +22,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; * contexts concurrently. */ public abstract class DOMRpcIdentifier { + private static final class Global extends DOMRpcIdentifier { private Global(final @Nonnull SchemaPath type) { super(type); @@ -29,7 +30,7 @@ public abstract class DOMRpcIdentifier { @Override public YangInstanceIdentifier getContextReference() { - return null; + return YangInstanceIdentifier.EMPTY; } } @@ -70,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) { + 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()); } /** @@ -92,14 +101,14 @@ public abstract class DOMRpcIdentifier { * * @return RPC context reference. */ - public abstract @Nullable YangInstanceIdentifier getContextReference(); + public abstract @Nonnull YangInstanceIdentifier getContextReference(); @Override public final int hashCode() { 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; } @@ -120,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(); } }