X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2Fspi%2Fdata%2FDOMStore.java;h=0bab570bd130b4378c7e78510908eea5fa53a393;hp=c82a2b855fcaa6fd8f7c5b27c67b8682d238acfa;hb=c46e223995956f1f759c551163c212947c1e2fb7;hpb=3ca2b85262ea5d9a8f638b03477c968549133232 diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java index c82a2b855f..0bab570bd1 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java @@ -9,52 +9,60 @@ package org.opendaylight.controller.sal.core.spi.data; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; -import org.opendaylight.controller.md.sal.common.api.data.DataChangeListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -public interface DOMStore { +/** + * DOM Data Store + * + *

+ * DOM Data Store provides transactional tree-like storage for YANG-modeled + * entities described by YANG schema and represented by {@link NormalizedNode}. + * + * Read and write access to stored data is provided only via transactions + * created using {@link #newReadOnlyTransaction()}, + * {@link #newWriteOnlyTransaction()} and {@link #newReadWriteTransaction()}, or + * by creating {@link org.opendaylight.controller.md.sal.common.api.data.TransactionChain}. + * + */ +public interface DOMStore extends DOMStoreTransactionFactory { /** + * Registers {@link org.opendaylight.controller.md.sal.common.api.data.DataChangeListener} for Data Change callbacks which will + * be triggered on the change of provided subpath. What constitutes a change + * depends on the @scope parameter. * - * Creates a read only transaction + * Listener upon registration receives an initial callback + * {@link AsyncDataChangeListener#onDataChanged(org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent)} + * which contains stable view of data tree at the time of registration. * - * @return - */ - DOMStoreReadTransaction newReadOnlyTransaction(); - - /** - * Creates write only transaction + *  @param path Path (subtree identifier) on which client listener will be + * invoked. * - * @return - */ - DOMStoreWriteTransaction newWriteOnlyTransaction(); - - /** - * Creates Read-Write transaction + * @param listener + * Instance of listener which should be invoked on + * @param scope + * Scope of change which triggers callback. + * @return Listener Registration object, which client may use to close + * registration / interest on receiving data changes. * - * @return */ - DOMStoreReadWriteTransaction newReadWriteTransaction(); + >> ListenerRegistration registerChangeListener( + YangInstanceIdentifier path, L listener, DataChangeScope scope); /** - * Registers {@link DataChangeListener} for Data Change callbacks - * which will be triggered on the change of provided subpath. What - * constitutes a change depends on the @scope parameter. * - * Listener upon registration receives an initial callback - * {@link AsyncDataChangeListener#onDataChanged(org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent)} - * which contains stable view of data tree at the time of registration. + * Creates new transaction chain. + * + * Transactions in a chain need to be committed in sequence and each + * transaction should see the effects of previous transactions as if they + * happened. * - * @param path Path (subtree identifier) on which client listener will be invoked. - * @param listener Instance of listener which should be invoked on - * @param scope Scope of change which triggers callback. - * @return Listener Registration object, which client may use to close registration - * / interest on receiving data changes. + * See {@link DOMStoreTransactionChain} for more information. * + * @return Newly created transaction chain. */ - >> ListenerRegistration registerChangeListener( - InstanceIdentifier path, L listener, DataChangeScope scope); + DOMStoreTransactionChain createTransactionChain(); }