X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-common-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fcommon%2Fapi%2Fdata%2FDataModification.java;h=f6662c388aa36e0092cf0ec8b5f262dcf981d163;hp=1ab7c34589bec6cbed7ce375e3330c591add348b;hb=3037a8b4158f8e4dbb891047180c5b1a9a0e053b;hpb=a251833f27fd00040904e2df316cd707c8129d1e diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModification.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModification.java index 1ab7c34589..f6662c388a 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModification.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModification.java @@ -7,56 +7,101 @@ */ package org.opendaylight.controller.md.sal.common.api.data; -import java.util.Map; -import java.util.Set; import java.util.concurrent.Future; import org.opendaylight.controller.md.sal.common.api.TransactionStatus; -// FIXME: After 0.6 Release of YANGTools refactor to use Path marker interface for arguments. -// import org.opendaylight.yangtools.concepts.Path; +import org.opendaylight.yangtools.concepts.Path; import org.opendaylight.yangtools.yang.common.RpcResult; -public interface DataModification

*/, D> extends DataReader { +public interface DataModification

, D> extends DataChange, DataReader { /** * Returns transaction identifier - * + * * @return Transaction identifier */ Object getIdentifier(); TransactionStatus getStatus(); + /** + * + * @deprecated Use {@link #putOperationalData(Object, Object)} instead. + * + * @param path + * @param data + */ + @Deprecated void putRuntimeData(P path, D data); + /** + * Store a piece of data at specified path. This acts as a merge operation, + * which is to say that any pre-existing data which is not explicitly + * overwritten will be preserved. This means that if you store a container, + * its child lists will be merged. Performing the following put operations: + * + * 1) container { list [ a ] } + * 2) container { list [ b ] } + * + * will result in the following data being present: + * + * container { list [ a, b ] } + * + * This also means that storing the container will preserve any augmentations + * which have been attached to it. + * + * If you require an explicit replace operation, perform + * {@link removeOperationalData} first. + */ + void putOperationalData(P path, D data); + + /** + * Store a piece of data at specified path. This acts as a merge operation, + * which is to say that any pre-existing data which is not explicitly + * overwritten will be preserved. This means that if you store a container, + * its child lists will be merged. Performing the following put operations: + * + * 1) container { list [ a ] } + * 2) container { list [ b ] } + * + * will result in the following data being present: + * + * container { list [ a, b ] } + * + * This also means that storing the container will preserve any augmentations + * which have been attached to it. + * + * If you require an explicit replace operation, perform + * {@link removeConfigurationData} first. + */ void putConfigurationData(P path, D data); + /** + * @deprecated Use {@link #removeOperationalData(Object)} + * + * @param path + */ + @Deprecated void removeRuntimeData(P path); - void removeConfigurationData(P path); - - public Map getUpdatedConfigurationData(); + void removeOperationalData(P path); - public Map getUpdatedOperationalData(); - - public Set

getRemovedConfigurationData(); - - public Set

getRemovedOperationalData(); + void removeConfigurationData(P path); /** * Initiates a two-phase commit of modification. - * + * *

* The successful commit changes the state of the system and may affect * several components. - * + * *

* The effects of successful commit of data are described in the * specifications and YANG models describing the Provider components of * controller. It is assumed that Consumer has an understanding of this * changes. - * - * + * + * * @see DataCommitHandler for further information how two-phase commit is * processed. * @param store