Added support for binding-independent RPCs
[controller.git] / opendaylight / sal / yang-prototype / sal / sal-common-util / src / main / java / org / opendaylight / controller / sal / common / util / Rpcs.java
diff --git a/opendaylight/sal/yang-prototype/sal/sal-common-util/src/main/java/org/opendaylight/controller/sal/common/util/Rpcs.java b/opendaylight/sal/yang-prototype/sal/sal-common-util/src/main/java/org/opendaylight/controller/sal/common/util/Rpcs.java
new file mode 100644 (file)
index 0000000..d397bff
--- /dev/null
@@ -0,0 +1,53 @@
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.sal.common.util;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
+import java.util.Collections;\r
+import org.opendaylight.controller.yang.common.RpcError;\r
+import org.opendaylight.controller.yang.common.RpcResult;\r
+\r
+public class Rpcs {\r
+    public static <T> RpcResult<T> getRpcResult(boolean successful, T result,\r
+            Collection<RpcError> errors) {\r
+        RpcResult<T> ret = new RpcResultTO<T>(successful, result, errors);\r
+        return ret;\r
+    }\r
+\r
+    private static class RpcResultTO<T> implements RpcResult<T> {\r
+\r
+        private final Collection<RpcError> errors;\r
+        private final T result;\r
+        private final boolean successful;\r
+\r
+        public RpcResultTO(boolean successful, T result,\r
+                Collection<RpcError> errors) {\r
+            this.successful = successful;\r
+            this.result = result;\r
+            this.errors = Collections.unmodifiableList(new ArrayList<RpcError>(\r
+                    errors));\r
+        }\r
+\r
+        @Override\r
+        public boolean isSuccessful() {\r
+            return successful;\r
+        }\r
+\r
+        @Override\r
+        public T getResult() {\r
+            return result;\r
+        }\r
+\r
+        @Override\r
+        public Collection<RpcError> getErrors() {\r
+            return errors;\r
+        }\r
+\r
+    }\r
+}\r