1 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
3 import static com.google.common.base.Preconditions.checkArgument;
4 import com.google.common.base.Optional;
5 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
6 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
7 import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
8 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder;
9 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedMapNodeBuilder;
10 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
12 final class OrderedMapModificationStrategy extends AbstractNodeContainerModificationStrategy {
13 private final Optional<ModificationApplyOperation> entryStrategy;
15 OrderedMapModificationStrategy(final ListSchemaNode schema) {
16 super(OrderedMapNode.class);
17 entryStrategy = Optional.<ModificationApplyOperation> of(new ListEntryModificationStrategy(schema));
21 protected ChildTrackingPolicy getChildPolicy() {
22 return ChildTrackingPolicy.ORDERED;
25 @SuppressWarnings("rawtypes")
27 protected NormalizedNodeContainerBuilder createBuilder(final NormalizedNode<?, ?> original) {
28 checkArgument(original instanceof OrderedMapNode);
29 return ImmutableOrderedMapNodeBuilder.create((OrderedMapNode) original);
33 public Optional<ModificationApplyOperation> getChild(final YangInstanceIdentifier.PathArgument identifier) {
34 if (identifier instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates) {
37 return Optional.absent();
41 public String toString() {
42 return "OrderedMapModificationStrategy [entry=" + entryStrategy + "]";