Replace deprecated Futures.addCallback by the newer version
[netconf.git] / netconf / mdsal-netconf-yang-library / src / main / java / org / opendaylight / netconf / mdsal / yang / library / SchemaServiceToMdsalWriter.java
index 953d878d1eb0c785dedc7b61a5150b2d33f70de4..d0d383a2bb0dbfe28f2d59ef3cf94f4dc2aa163b 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.netconf.mdsal.yang.library;
 import com.google.common.collect.Lists;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.MoreExecutors;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -18,8 +19,6 @@ import javax.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.ModulesState;
@@ -33,7 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.submodules.SubmoduleBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
@@ -42,7 +40,7 @@ import org.slf4j.LoggerFactory;
 
 /**
  * Listens for updates on global schema context, transforms context to ietf-yang-library:modules-state and
- * writes this state to operational data store
+ * writes this state to operational data store.
  */
 // TODO Implement also yang-library-change notfication
 public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCloseable {
@@ -69,7 +67,7 @@ public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCl
     }
 
     /**
-     * Invoke by blueprint
+     * Invoked by blueprint.
      */
     public void start() {
         schemaService.registerSchemaContextListener(this);
@@ -91,31 +89,34 @@ public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCl
             }
 
             @Override
-            public void onFailure(final Throwable t) {
-                LOG.warn("Failed to update modules state", t);
+            public void onFailure(final Throwable throwable) {
+                LOG.warn("Failed to update modules state", throwable);
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     private ModulesState createModuleStateFromModules(final Set<Module> modules) {
         final ModulesStateBuilder modulesStateBuilder = new ModulesStateBuilder();
-        final List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module> moduleList =
+        final List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list
+                .Module> moduleList =
                 Lists.newArrayList();
 
         for (final Module module : modules) {
             moduleList.add(createModuleEntryFromModule(module));
         }
 
-        return modulesStateBuilder.setModule(moduleList).setModuleSetId(String.valueOf(moduleSetId.getAndIncrement())).build();
+        return modulesStateBuilder.setModule(moduleList).setModuleSetId(String.valueOf(moduleSetId.getAndIncrement()))
+                .build();
     }
 
-    private org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module createModuleEntryFromModule(final Module module) {
+    private org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.Module
+        createModuleEntryFromModule(final Module module) {
         final ModuleBuilder moduleBuilder = new ModuleBuilder();
 
         // TODO Conformance type is always set to Implement value, but it should it really be like this?
         // TODO Add also deviations and features lists to module entries
         moduleBuilder.setName(new YangIdentifier(module.getName()))
-                .setRevision(new OptionalRevision(SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision())))
+                .setRevision(new OptionalRevision(module.getQNameModule().getFormattedRevision()))
                 .setNamespace(new Uri(module.getNamespace().toString()))
                 .setConformanceType(ConformanceType.Implement)
                 .setSubmodules(createSubmodulesForModule(module));
@@ -128,10 +129,10 @@ public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCl
         for (final Module subModule : module.getSubmodules()) {
             final SubmoduleBuilder subModuleEntryBuilder = new SubmoduleBuilder();
             subModuleEntryBuilder.setName(new YangIdentifier(subModule.getName()))
-                    .setRevision(new OptionalRevision(SimpleDateFormatUtil.getRevisionFormat().format(subModule.getRevision())));
+                    .setRevision(new OptionalRevision(subModule.getQNameModule().getFormattedRevision()));
             submodulesList.add(subModuleEntryBuilder.build());
         }
 
-        return  new SubmodulesBuilder().setSubmodule(submodulesList).build();
+        return new SubmodulesBuilder().setSubmodule(submodulesList).build();
     }
-}
\ No newline at end of file
+}