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=22c5fa0c1d25eb4a71e19b2b271a5a777dada2e3;hp=d74b26dae24ae374aa5b03f987eea27c12fe7113;hb=7312d7684413675e8dda5e3616deaa727e6d18ba;hpb=fcccbe2ab580850a63bb25d657bd10ef424b7614 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 d74b26dae2..22c5fa0c1d 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,20 +7,16 @@ */ 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 DataChange, DataReader { - +public interface DataModification

, D> extends DataChange, DataReader { /** * Returns transaction identifier - * + * * @return Transaction identifier */ Object getIdentifier(); @@ -28,26 +24,46 @@ public interface DataModification

*/, D> extends DataChange< TransactionStatus getStatus(); /** - * - * @deprecated Use {@link #putOperationalData(Object, Object)} instead. - * - * @param path - * @param 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. */ - @Deprecated - void putRuntimeData(P path, D data); - void putOperationalData(P path, D data); - void putConfigurationData(P path, D data); - /** - * @deprecated Use {@link #removeOperationalData(Object)} - * - * @param path + * 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. */ - @Deprecated - void removeRuntimeData(P path); + void putConfigurationData(P path, D data); void removeOperationalData(P path); @@ -55,18 +71,18 @@ public interface DataModification

*/, D> extends DataChange< /** * 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 @@ -77,5 +93,4 @@ public interface DataModification

*/, D> extends DataChange< * {@link TransactionStatus#FAILED} is reached. */ Future> commit(); - }