From 584b76c14b7a89e5acd5548a6f8d2edcda18bb15 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 18 Feb 2014 12:33:01 +0100 Subject: [PATCH] Activate enforcement of Path type This activates pre-prepared requirement of P to be of type Path

, which had prerequisites in generated DTOs. Yangtools have been updated, so it should be safe to activate this now. Change-Id: I68ad3a77311e44db2e6bee1d7e2b3684090e5cbd Signed-off-by: Robert Varga --- .../md/sal/common/api/data/DataChange.java | 29 ++++++------ .../sal/common/api/data/DataChangeEvent.java | 17 +++---- .../common/api/data/DataChangeListener.java | 5 +-- .../common/api/data/DataChangePublisher.java | 6 +-- .../common/api/data/DataCommitHandler.java | 45 +++++++++---------- .../sal/common/api/data/DataModification.java | 5 +-- .../DataModificationTransactionFactory.java | 5 +-- .../md/sal/common/api/data/DataProvider.java | 5 +-- .../md/sal/common/api/data/DataReader.java | 9 ++-- .../md/sal/common/api/data/DataStore.java | 4 +- .../sal/common/api/data/TransactionChain.java | 4 +- .../api/data/TransactionChainFactory.java | 4 +- .../api/routing/MutableRoutingTable.java | 5 +-- .../api/routing/RoutedRegistration.java | 5 +-- .../sal/common/api/routing/RoutingTable.java | 5 +-- 15 files changed, 74 insertions(+), 79 deletions(-) diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChange.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChange.java index 30a607d95b..ebffbcc811 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChange.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChange.java @@ -10,41 +10,40 @@ package org.opendaylight.controller.md.sal.common.api.data; import java.util.Map; import java.util.Set; -// 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; -public interface DataChange

*/, D> { +public interface DataChange

, D> { /** * Returns a map of paths and newly created objects - * + * * @return map of paths and newly created objects */ Map getCreatedOperationalData(); /** * Returns a map of paths and newly created objects - * + * * @return map of paths and newly created objects */ Map getCreatedConfigurationData(); /** * Returns a map of paths and respective updated objects after update. - * + * * Original state of the object is in * {@link #getOriginalOperationalData()} - * + * * @return map of paths and newly created objects */ Map getUpdatedOperationalData(); /** * Returns a map of paths and respective updated objects after update. - * + * * Original state of the object is in * {@link #getOriginalConfigurationData()} - * + * * @return map of paths and newly created objects */ Map getUpdatedConfigurationData(); @@ -53,34 +52,34 @@ public interface DataChange

*/, D> { /** * Returns a set of paths of removed objects. - * + * * Original state of the object is in * {@link #getOriginalConfigurationData()} - * + * * @return map of paths and newly created objects */ Set

getRemovedConfigurationData(); /** * Returns a set of paths of removed objects. - * + * * Original state of the object is in * {@link #getOriginalOperationalData()} - * + * * @return map of paths and newly created objects */ Set

getRemovedOperationalData(); /** * Return a map of paths and original state of updated and removed objectd. - * + * * @return map of paths and original state of updated and removed objectd. */ Map getOriginalConfigurationData(); /** * Return a map of paths and original state of updated and removed objectd. - * + * * @return map of paths and original state of updated and removed objectd. */ Map getOriginalOperationalData(); diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeEvent.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeEvent.java index d62e176e62..15d1daa1bb 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeEvent.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeEvent.java @@ -8,36 +8,37 @@ package org.opendaylight.controller.md.sal.common.api.data; import org.opendaylight.yangtools.concepts.Immutable; +import org.opendaylight.yangtools.concepts.Path; -public interface DataChangeEvent extends DataChange, Immutable { +public interface DataChangeEvent

,D> extends DataChange, Immutable { /** * Returns a orignal subtree of data, which starts at the path * where listener was registered. - * + * */ D getOriginalConfigurationSubtree(); /** * Returns a new subtree of data, which starts at the path * where listener was registered. - * + * */ D getOriginalOperationalSubtree(); - - - + + + /** * Returns a updated subtree of data, which starts at the path * where listener was registered. - * + * */ D getUpdatedConfigurationSubtree(); /** * Returns a udpated subtree of data, which starts at the path * where listener was registered. - * + * */ D getUpdatedOperationalSubtree(); } diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeListener.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeListener.java index 8b87139c7f..8787a3fe8d 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeListener.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangeListener.java @@ -9,10 +9,9 @@ package org.opendaylight.controller.md.sal.common.api.data; import java.util.EventListener; -// 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; -public interface DataChangeListener

*/,D> extends EventListener { +public interface DataChangeListener

, D> extends EventListener { void onDataChanged(DataChangeEvent change); } diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangePublisher.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangePublisher.java index 66645e5538..0c4c6d179f 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangePublisher.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataChangePublisher.java @@ -7,12 +7,10 @@ */ package org.opendaylight.controller.md.sal.common.api.data; - import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Path; -// FIXME: After 0.6 Release of YANGTools refactor to use Path marker interface for arguments. -// import org.opendaylight.yangtools.concepts.Path; -public interface DataChangePublisher

*/,D, L extends DataChangeListener> { +public interface DataChangePublisher

, D, L extends DataChangeListener> { ListenerRegistration registerDataChangeListener(P path, L listener); diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataCommitHandler.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataCommitHandler.java index 90de13d15e..939ff95135 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataCommitHandler.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataCommitHandler.java @@ -8,30 +8,29 @@ package org.opendaylight.controller.md.sal.common.api.data; import org.opendaylight.controller.sal.common.DataStoreIdentifier; -// 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; /** * Two phase commit handler (cohort) of the two-phase commit protocol of data. - * + * *

* The provider should expose the implementation of DataCommitHandler if it's * functionality depends on any subset of data stored in data repositories, in * order to participate in {@link DataBrokerService#commit(DataStoreIdentifier) * operation. - * + * *

* Operations of two-phase commit handlers should not change data in data store, * this is responsibility of the coordinator (broker or some component of the * broker). - * + * * The commit handlers are responsible for changing the internal state of the * provider to reflect the commited changes in data. - * + * *

Two-phase commit

- * + * *

Commit Request Phase

- * + * *
    *
  1. Consumer edits data by invocation of * DataBrokerService.editCandidateData(DataStoreIdentifier, DataRoot) @@ -51,9 +50,9 @@ import org.opendaylight.yangtools.yang.common.RpcResult; *
*
  • Broker starts a commit finish phase * - * + * *

    Commit Finish Phase

    - * + * *
      *
    1. For each CommitTransaction from Commit Request phase *
        @@ -69,7 +68,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult; *
      1. If error occured, the broker starts a commit rollback phase. * *
      - * + * *

      Commit Rollback Phase

      *
    2. For each DataCommitTransaction from Commit Request phase *
        @@ -78,43 +77,43 @@ import org.opendaylight.yangtools.yang.common.RpcResult; *
      1. The provider rollbacks a commit and returns an {@link RpcResult} of * rollback.
      *
    3. Broker returns a error result to the consumer. - * + * * @param

      Class representing a path * @param Superclass from which all data objects are derived from. */ -public interface DataCommitHandler

      */,D> { +public interface DataCommitHandler

      , D> { + - DataCommitTransaction requestCommit(DataModification modification); - public interface DataCommitTransaction

      */,D> { + public interface DataCommitTransaction

      , D> { DataModification getModification(); /** - * + * * Finishes a commit. - * + * * This callback is invoked by commit coordinator to finish commit action. - * + * * The implementation is required to finish transaction or return unsuccessful * rpc result if something went wrong. - * + * * The provider (commit handler) should apply all changes to its state * which are a result of data change- - * + * * @return */ RpcResult finish() throws IllegalStateException; /** * Rollbacks a commit. - * + * * This callback is invoked by commit coordinator to finish commit action. - * + * * The provider (commit handler) should rollback all changes to its state * which were a result of previous request commit. - * + * * @return * @throws IllegalStateException * If the method is invoked after {@link #finish()} 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 00db6064aa..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 @@ -10,11 +10,10 @@ package org.opendaylight.controller.md.sal.common.api.data; import java.util.concurrent.Future; import org.opendaylight.controller.md.sal.common.api.TransactionStatus; +import org.opendaylight.yangtools.concepts.Path; import org.opendaylight.yangtools.yang.common.RpcResult; -//FIXME: After 0.6 Release of YANGTools refactor to use Path marker interface for arguments. -//import org.opendaylight.yangtools.concepts.Path; -public interface DataModification

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

      , D> extends DataChange, DataReader { /** * Returns transaction identifier diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModificationTransactionFactory.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModificationTransactionFactory.java index 64d90f6fd5..34f6fe970d 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModificationTransactionFactory.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataModificationTransactionFactory.java @@ -7,10 +7,9 @@ */ package org.opendaylight.controller.md.sal.common.api.data; -// 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; -public interface DataModificationTransactionFactory

      */,D> { +public interface DataModificationTransactionFactory

      ,D> { DataModification beginTransaction(); } diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataProvider.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataProvider.java index 6c108bf5e4..dae9a1144b 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataProvider.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataProvider.java @@ -7,9 +7,8 @@ */ package org.opendaylight.controller.md.sal.common.api.data; -// 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; -public interface DataProvider

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

      , D> extends DataReader { } diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataReader.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataReader.java index 7240a506be..14731d688c 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataReader.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataReader.java @@ -7,23 +7,22 @@ */ package org.opendaylight.controller.md.sal.common.api.data; -// 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; /** * Reader for reading YANG subtrees based on their path. - * + * * Reader is requested to return object at specified path and all it's subnodes * known to the reader or null if node is not found in this reader. * * @param

      Path Type * @param Data Type */ -public interface DataReader

      */,D> { +public interface DataReader

      ,D> { /** * Reads data from Operational data store located at provided path - * + * * @param path Path to data * @return */ diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataStore.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataStore.java index ed5499870a..3520ba1819 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataStore.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/DataStore.java @@ -7,7 +7,9 @@ */ package org.opendaylight.controller.md.sal.common.api.data; -public interface DataStore extends // +import org.opendaylight.yangtools.concepts.Path; + +public interface DataStore

      , D> extends // DataReader, // DataModificationTransactionFactory { diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChain.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChain.java index ff3aa2e325..d542935dd6 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChain.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChain.java @@ -7,12 +7,14 @@ */ package org.opendaylight.controller.md.sal.common.api.data; +import org.opendaylight.yangtools.concepts.Path; + /** * A chain of transactions. Transactions in a chain need to be committed in sequence and each * transaction should see the effects of previous transactions as if they happened. A chain * makes no guarantees of atomicity, in fact transactions are committed as soon as possible. */ -public interface TransactionChain

      */, D> extends AutoCloseable { +public interface TransactionChain

      , D> extends AutoCloseable { /** * Create a new transaction which will continue the chain. The previous transaction * has to be either COMMITTED or CANCELLED. diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChainFactory.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChainFactory.java index 4e7e12e0a1..94d21f5fd6 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChainFactory.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/data/TransactionChainFactory.java @@ -7,10 +7,12 @@ */ package org.opendaylight.controller.md.sal.common.api.data; +import org.opendaylight.yangtools.concepts.Path; + /** * Interface for creating transaction chains. */ -public interface TransactionChainFactory

      */, D> { +public interface TransactionChainFactory

      , D> { /** * Create a new transaction chain. The chain will be initialized to read * from its backing datastore, with no outstanding transaction. Listener diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/MutableRoutingTable.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/MutableRoutingTable.java index 1139d03357..f99c13ecf5 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/MutableRoutingTable.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/MutableRoutingTable.java @@ -8,10 +8,9 @@ package org.opendaylight.controller.md.sal.common.api.routing; import org.opendaylight.yangtools.concepts.Mutable; -// 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; -public interface MutableRoutingTable */,T> extends RoutingTable, Mutable { +public interface MutableRoutingTable, T> extends RoutingTable, Mutable { void setDefaultRoute(T target); void updateRoute(P path,T target); diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutedRegistration.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutedRegistration.java index 37ec2f6f1f..5200c90561 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutedRegistration.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutedRegistration.java @@ -7,11 +7,10 @@ */ package org.opendaylight.controller.md.sal.common.api.routing; -// 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.concepts.Registration; -public interface RoutedRegistration */,S> extends Registration { +public interface RoutedRegistration, S> extends Registration { void registerPath(C context, P path); void unregisterPath(C context, P path); diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutingTable.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutingTable.java index 211cf18879..4402f69a5f 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutingTable.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/routing/RoutingTable.java @@ -9,10 +9,9 @@ package org.opendaylight.controller.md.sal.common.api.routing; import java.util.Map; -// 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; -public interface RoutingTable */,T> { +public interface RoutingTable, T> { C getIdentifier(); -- 2.36.6