Introduce DelegatingModificationApplyOperation 20/80020/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Jan 2019 11:46:10 +0000 (12:46 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Jan 2019 15:08:31 +0000 (16:08 +0100)
commit37fe9edc082b151bc100537cfa567ba5998d453b
tree2590dcef177e93f7505d93ba5db859e0f42875ee
parent75e30d2678989947221aef0fed94301faa785a9e
Introduce DelegatingModificationApplyOperation

As it turns out implementations outside of SchemaAwareApplyOperation
can share implementations of most methods through delegation. Create
two new abstract classes, DelegatingModificationApplyOperation and
FullyDelegatedModificationApplyOperation which host partial and full
set of methods implemented as delegates.

FullyDelegatedModificationApplyOperation is used by AlwaysFailOperation
and RootModificationApplyOperation, as they the always-fail behaviour
is easily implemented through throwing ISE in delegate().

This eliminates 1-2 implementations of each ModificationApplyOperation
method.

Change-Id: I578769418baafb285593fefe8868e97e1d171157
JIRA: YANGTOOLS-944
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/AlwaysFailOperation.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/DelegatingModificationApplyOperation.java [new file with mode: 0644]
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/FullyDelegatedModificationApplyOperation.java [new file with mode: 0644]
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/MinMaxElementsValidation.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/NotUpgradableModificationApplyOperation.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/RootModificationApplyOperation.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/UpgradableModificationApplyOperation.java