Added serializer/deserializer for JSON/XML
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / main / java / org / opendaylight / controller / sal / restconf / impl / BrokerFacade.xtend
index 4c6eb3b10658c61b5b0c4de6e423cfad33ed0643..8e18661db6ecdfcc65d822dff5bf1e4c115c0b96 100644 (file)
@@ -1,65 +1,57 @@
 package org.opendaylight.controller.sal.restconf.impl
 
 import org.opendaylight.controller.md.sal.common.api.data.DataReader
-import java.net.URI
-import org.opendaylight.yangtools.yang.data.api.CompositeNode
-import org.opendaylight.controller.sal.core.api.data.DataBrokerService
-import org.opendaylight.controller.sal.core.api.model.SchemaService
-import static com.google.common.base.Preconditions.*;
 import org.opendaylight.controller.sal.core.api.Broker.ConsumerSession
+import org.opendaylight.controller.sal.core.api.data.DataBrokerService
+import org.opendaylight.yangtools.yang.common.QName
 import org.opendaylight.yangtools.yang.common.RpcResult
-import org.opendaylight.controller.md.sal.common.api.data.DataModificationTransactionFactory
+import org.opendaylight.yangtools.yang.data.api.CompositeNode
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier
+import static org.opendaylight.controller.sal.restconf.impl.BrokerFacade.*
+
+class BrokerFacade implements DataReader<InstanceIdentifier, CompositeNode> {
 
-class BrokerFacade implements DataReader<String, CompositeNode> {
+    val static BrokerFacade INSTANCE = new BrokerFacade
 
     @Property
     private ConsumerSession context;
-    
+
     @Property
     private DataBrokerService dataService;
     
-    @Property
-    private SchemaService schemaService;
-
-    @Property
-    private extension ControllerContext schemaContext;
-
-
-    def void init() {
-        checkState(dataService !== null)
-        checkState(schemaService !== null)
-        schemaContext = new ControllerContext();
-        schemaContext.schemas = schemaService.globalContext;
+    private new() {
+        if (INSTANCE != null) {
+            throw new IllegalStateException("Already instantiated");
+        }
+    }
+    
+    def static BrokerFacade getInstance() {
+        return INSTANCE
     }
 
-    override readConfigurationData(String path) {
-        val processedPath = path.removePrefixes();
-        return dataService.readConfigurationData(processedPath.toInstanceIdentifier);
+    override readConfigurationData(InstanceIdentifier path) {
+        return dataService.readConfigurationData(path);
     }
 
-    override readOperationalData(String path) {
-        val processedPath = path.removePrefixes();
-        return dataService.readOperationalData(processedPath.toInstanceIdentifier);
+    override readOperationalData(InstanceIdentifier path) {
+        return dataService.readOperationalData(path);
     }
-    
-    def RpcResult<CompositeNode> invokeRpc(String type,CompositeNode payload) {
-        val future = context.rpc(type.toRpcQName(),payload);
+
+    def RpcResult<CompositeNode> invokeRpc(QName type, CompositeNode payload) {
+        val future = context.rpc(typepayload);
         return future.get;
     }
-    
-    def commitConfigurationDataUpdate(String path, CompositeNode payload) {
+
+    def commitConfigurationDataUpdate(InstanceIdentifier path, CompositeNode payload) {
         val transaction = dataService.beginTransaction;
-        transaction.putConfigurationData(path.toInstanceIdentifier,payload);
+        transaction.putConfigurationData(pathpayload);
         return transaction.commit()
     }
-    
-    def commitConfigurationDataCreate(String path, CompositeNode payload) {
+
+    def commitConfigurationDataCreate(InstanceIdentifier path, CompositeNode payload) {
         val transaction = dataService.beginTransaction;
-        transaction.putConfigurationData(path.toInstanceIdentifier,payload);
+        transaction.putConfigurationData(pathpayload);
         return transaction.commit()
     }
     
-    private def String removePrefixes(String path) {
-        return path;
-    }
 }