Proxy over MDSAL-provided IMDS
[controller.git] / opendaylight / md-sal / sal-dom-api / src / main / java / org / opendaylight / controller / sal / core / api / RpcRoutingContext.java
index 1680c1927707009a6dc3f147aa0a6bc9322aabdc..a847d326a32aeb999b509c17db286856c0c2dfcc 100644 (file)
@@ -5,14 +5,76 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.controller.sal.core.api;
 
+import java.io.Serializable;
+import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 
-public interface RpcRoutingContext {
+public final class RpcRoutingContext implements Immutable, Serializable {
+    private static final long serialVersionUID = -9079324728075883325L;
+
+    private final QName context;
+    private final QName rpc;
+
+
+    private RpcRoutingContext(QName context, QName rpc) {
+        this.context = context;
+        this.rpc = rpc;
+    }
+
+    public static RpcRoutingContext create(QName context, QName rpc) {
+        return new RpcRoutingContext(context, rpc);
+    }
+
+    public QName getContext() {
+        return context;
+    }
+
+    public QName getRpc() {
+        return rpc;
+    }
+
+    @Override
+    public String toString() {
+        return "RpcRoutingContext [context=" + context + ", rpc=" + rpc + "]";
+    }
 
-  public QName getContext();
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + (context == null ? 0 : context.hashCode());
+        result = prime * result + (rpc == null ? 0 : rpc.hashCode());
+        return result;
+    }
 
-  public QName getRpcType();
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        RpcRoutingContext other = (RpcRoutingContext) obj;
+        if (context == null) {
+            if (other.context != null) {
+                return false;
+            }
+        } else if (!context.equals(other.context)) {
+            return false;
+        }
+        if (rpc == null) {
+            if (other.rpc != null) {
+                return false;
+            }
+        } else if (!rpc.equals(other.rpc)) {
+            return false;
+        }
+        return true;
+    }
 }