X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=infra%2Fdata-impl%2Fsrc%2Fmain%2Fjava%2Fio%2Ffd%2Fhoneycomb%2Fdata%2Fimpl%2FValidableTransaction.java;fp=infra%2Fdata-impl%2Fsrc%2Fmain%2Fjava%2Fio%2Ffd%2Fhoneycomb%2Fdata%2Fimpl%2FValidableTransaction.java;h=0c67f863f75af32cba1984ab7f3d48ec13f53795;hb=819618ee3920c8277509bc2add888328c722cf10;hp=0000000000000000000000000000000000000000;hpb=556a0f59abc9b09005d40945bc20948d69e4f98e;p=honeycomb.git diff --git a/infra/data-impl/src/main/java/io/fd/honeycomb/data/impl/ValidableTransaction.java b/infra/data-impl/src/main/java/io/fd/honeycomb/data/impl/ValidableTransaction.java new file mode 100644 index 000000000..0c67f863f --- /dev/null +++ b/infra/data-impl/src/main/java/io/fd/honeycomb/data/impl/ValidableTransaction.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2018 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fd.honeycomb.data.impl; + +import com.google.common.annotations.Beta; +import com.google.common.util.concurrent.CheckedFuture; +import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; +import org.opendaylight.netconf.mdsal.connector.DOMDataTransactionValidator; +import org.opendaylight.netconf.mdsal.connector.DOMDataTransactionValidator.ValidationFailedException; + +/** + * An {@link DOMDataWriteTransaction} than can be validated. + * @see DOMDataTransactionValidator + */ +@Beta +interface ValidableTransaction extends DOMDataWriteTransaction { + /** + * Validates state of the data tree associated with the provided {@link DOMDataWriteTransaction}. + * + *

The operation should not have any side-effects on the transaction state. + * + *

It can be executed many times, providing the same results + * if the state of the transaction has not been changed. + * + * @return + * a CheckedFuture containing the result of the validate operation. The future blocks until the validation + * operation is complete. A successful validate returns nothing. On failure, the Future will fail + * with a {@link ValidationFailedException} or an exception derived from ValidationFailedException. + */ + CheckedFuture validate(); +}