Merge "BUG-509: create data tree SPI package"
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / md / sal / dom / store / impl / tree / data / AlwaysFailOperation.java
1 package org.opendaylight.controller.md.sal.dom.store.impl.tree.data;
2
3 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
4 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
5
6 import com.google.common.base.Optional;
7 import com.google.common.primitives.UnsignedLong;
8
9 /**
10  * An implementation of apply operation which fails to do anything,
11  * consistently. An instance of this class is used by the data tree
12  * if it does not have a SchemaContext attached and hence cannot
13  * perform anything meaningful.
14  */
15 final class AlwaysFailOperation implements ModificationApplyOperation {
16     @Override
17     public Optional<StoreMetadataNode> apply(final NodeModification modification,
18             final Optional<StoreMetadataNode> storeMeta, final UnsignedLong subtreeVersion) {
19         throw new IllegalStateException("Schema Context is not available.");
20     }
21
22     @Override
23     public void checkApplicable(final InstanceIdentifier path,final NodeModification modification, final Optional<StoreMetadataNode> storeMetadata) {
24         throw new IllegalStateException("Schema Context is not available.");
25     }
26
27     @Override
28     public Optional<ModificationApplyOperation> getChild(final PathArgument child) {
29         throw new IllegalStateException("Schema Context is not available.");
30     }
31
32     @Override
33     public void verifyStructure(final NodeModification modification) {
34         throw new IllegalStateException("Schema Context is not available.");
35     }
36 }