Eliminate no-op MandatoryLeafEnforcer
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / UnorderedLeafSetModificationStrategy.java
index 44c63a3bc18a673f84b6720567617047ead51c10..76286240ce12ffed7f61608af272ce97d77dd2ac 100644 (file)
@@ -8,21 +8,17 @@
 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import com.google.common.base.Optional;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+
 import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 
-final class UnorderedLeafSetModificationStrategy extends NormalizedNodeContainerModificationStrategy {
-    private final Optional<ModificationApplyOperation> entryStrategy;
-
-    @SuppressWarnings({ "unchecked", "rawtypes" })
-    UnorderedLeafSetModificationStrategy(final LeafListSchemaNode schema) {
-        super((Class) LeafSetNode.class);
-        entryStrategy = Optional.<ModificationApplyOperation> of(new LeafSetEntryModificationStrategy(schema));
+final class UnorderedLeafSetModificationStrategy extends AbstractLeafSetModificationStrategy {
+    UnorderedLeafSetModificationStrategy(final LeafListSchemaNode schema, final DataTreeConfiguration treeConfig) {
+        super(schema, treeConfig);
     }
 
     @SuppressWarnings("rawtypes")
@@ -33,10 +29,9 @@ final class UnorderedLeafSetModificationStrategy extends NormalizedNodeContainer
     }
 
     @Override
-    public Optional<ModificationApplyOperation> getChild(final YangInstanceIdentifier.PathArgument identifier) {
-        if (identifier instanceof YangInstanceIdentifier.NodeWithValue) {
-            return entryStrategy;
-        }
-        return Optional.absent();
+    protected NormalizedNode<?, ?> createEmptyValue(final NormalizedNode<?, ?> original) {
+        checkArgument(original instanceof LeafSetNode<?>);
+        return ImmutableLeafSetNodeBuilder.create().withNodeIdentifier(((LeafSetNode<?>) original).getIdentifier())
+                .build();
     }
 }
\ No newline at end of file