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;
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;
* Listens for updates on global schema context, transforms context to ietf-yang-library:modules-state and
* writes this state to operational data store
*/
+// TODO Implement also yang-library-change notfication
public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(SchemaServiceToMdsalWriter.class);
// 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));
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();
}
-}
\ No newline at end of file
+}