X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fsal%2Fyang-prototype%2Fsal%2Fsal-binding-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fapi%2FDataProviderService.java;fp=opendaylight%2Fsal%2Fyang-prototype%2Fsal%2Fsal-binding-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fapi%2FDataProviderService.java;h=e4e7be5c6c196cef628d8598d498ad3928cfc3a2;hb=42210c03b0a4c54706320ba9f55794c0abd4d201;hp=0000000000000000000000000000000000000000;hpb=7576b38152b393793b1c9ec3df0ff86685f95236;p=controller.git diff --git a/opendaylight/sal/yang-prototype/sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/DataProviderService.java b/opendaylight/sal/yang-prototype/sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/DataProviderService.java new file mode 100644 index 0000000000..e4e7be5c6c --- /dev/null +++ b/opendaylight/sal/yang-prototype/sal/sal-binding-api/src/main/java/org/opendaylight/controller/sal/binding/api/DataProviderService.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.sal.binding.api; + +import org.opendaylight.controller.sal.common.DataStoreIdentifier; + +public interface DataProviderService extends DataBrokerService { + + /** + * Adds {@link DataValidator} for specified Data Store + * + * @param store + * Data Store + * @param validator + * Validator + */ + public void addValidator(DataStoreIdentifier store, DataValidator validator); + + /** + * Removes {@link DataValidator} from specified Data Store + * + * @param store + * @param validator + * Validator + */ + public void removeValidator(DataStoreIdentifier store, + DataValidator validator); + + /** + * Adds {@link DataCommitHandler} for specified data store + * + * @param store + * @param provider + */ + void addCommitHandler(DataStoreIdentifier store, DataCommitHandler provider); + + /** + * Removes {@link DataCommitHandler} from specified data store + * + * @param store + * @param provider + */ + void removeCommitHandler(DataStoreIdentifier store, + DataCommitHandler provider); + + /** + * Adds {@link DataRefresher} for specified data store + * + * @param store + * @param refresher + */ + void addRefresher(DataStoreIdentifier store, DataRefresher refresher); + + /** + * Removes {@link DataRefresher} from specified data store + * + * @param store + * @param refresher + */ + void removeRefresher(DataStoreIdentifier store, DataRefresher refresher); + + /** + * Trigger for refreshing of the data exposed by the {@link Provider} + * + + * + */ + public interface DataRefresher extends + BindingAwareProvider.ProviderFunctionality { + + /** + * Fired when some component explicitly requested the data refresh. + * + * The provider which exposed the {@link DataRefresher} should republish + * its provided data by editing the data in all affected data stores. + */ + void refreshData(); + } + +}