*/
package org.opendaylight.yangtools.yang.data.impl.schema.tree;
-import java.util.Optional;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
-import org.opendaylight.yangtools.yang.data.api.schema.OrderedLeafSetNode;
+import org.opendaylight.yangtools.yang.data.api.schema.SystemLeafSetNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UserLeafSetNode;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedLeafSetNodeBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUserLeafSetNodeBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.Invisible;
import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
-final class LeafSetModificationStrategy extends AbstractNodeContainerModificationStrategy {
+final class LeafSetModificationStrategy extends Invisible<LeafListSchemaNode> {
@SuppressWarnings({ "unchecked", "rawtypes" })
- private static final NormalizedNodeContainerSupport<NodeIdentifier, OrderedLeafSetNode<?>> ORDERED_SUPPORT =
- new NormalizedNodeContainerSupport(OrderedLeafSetNode.class, ChildTrackingPolicy.ORDERED,
- foo -> ImmutableOrderedLeafSetNodeBuilder.create((OrderedLeafSetNode<?>)foo),
- ImmutableOrderedLeafSetNodeBuilder::create);
+ private static final NormalizedNodeContainerSupport<NodeIdentifier, UserLeafSetNode<?>> ORDERED_SUPPORT =
+ new NormalizedNodeContainerSupport(UserLeafSetNode.class, ChildTrackingPolicy.ORDERED,
+ foo -> ImmutableUserLeafSetNodeBuilder.create((UserLeafSetNode<?>)foo),
+ ImmutableUserLeafSetNodeBuilder::create);
@SuppressWarnings({ "unchecked", "rawtypes" })
- private static final NormalizedNodeContainerSupport<NodeIdentifier, LeafSetNode<?>> UNORDERED_SUPPORT =
- new NormalizedNodeContainerSupport(LeafSetNode.class,
- foo -> ImmutableLeafSetNodeBuilder.create((LeafSetNode<?>)foo),
+ private static final NormalizedNodeContainerSupport<NodeIdentifier, SystemLeafSetNode<?>> UNORDERED_SUPPORT =
+ new NormalizedNodeContainerSupport(SystemLeafSetNode.class,
+ foo -> ImmutableLeafSetNodeBuilder.create((SystemLeafSetNode<?>)foo),
ImmutableLeafSetNodeBuilder::create);
- private final Optional<ModificationApplyOperation> entryStrategy;
-
LeafSetModificationStrategy(final LeafListSchemaNode schema, final DataTreeConfiguration treeConfig) {
- super(schema.isUserOrdered() ? ORDERED_SUPPORT : UNORDERED_SUPPORT, treeConfig);
- entryStrategy = Optional.of(new ValueNodeModificationStrategy<>(LeafSetEntryNode.class, schema));
+ super(schema.isUserOrdered() ? ORDERED_SUPPORT : UNORDERED_SUPPORT, treeConfig,
+ new ValueNodeModificationStrategy<>(LeafSetEntryNode.class, schema));
}
@Override
- public Optional<ModificationApplyOperation> getChild(final PathArgument identifier) {
- return identifier instanceof NodeWithValue ? entryStrategy : Optional.empty();
+ public ModificationApplyOperation childByArg(final PathArgument arg) {
+ return arg instanceof NodeWithValue ? entryStrategy() : null;
}
}
\ No newline at end of file