import static com.google.common.base.Preconditions.checkArgument;
import java.util.Iterator;
-import java.util.Map.Entry;
import java.util.Optional;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.ModifyAction;
+import org.opendaylight.yangtools.yang.common.Empty;
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.LeafNode;
import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeAttrBuilder;
+import org.opendaylight.yangtools.yang.data.api.schema.builder.NormalizedNodeBuilder;
import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
}
@Override
- final NormalizedNode<?, ?> create(final PathArgument first, final Iterator<PathArgument> others,
- final Optional<NormalizedNode<?, ?>> deepestChild, final Optional<Entry<QName, ModifyAction>> operation) {
- final NormalizedNodeAttrBuilder<? extends PathArgument, Object,
- ? extends NormalizedNode<? extends PathArgument, Object>> builder = getBuilder(first);
+ final NormalizedNode create(final PathArgument first, final Iterator<PathArgument> others,
+ final Optional<NormalizedNode> deepestChild) {
+ final NormalizedNodeBuilder<? extends PathArgument, Object, ? extends NormalizedNode> builder =
+ getBuilder(first);
if (deepestChild.isPresent()) {
- builder.withValue(deepestChild.get().getValue());
+ builder.withValue(deepestChild.orElseThrow().body());
}
- addModifyOpIfPresent(operation, builder);
return builder.build();
}
return false;
}
- abstract NormalizedNodeAttrBuilder<? extends PathArgument, Object,
- ? extends NormalizedNode<? extends PathArgument, Object>> getBuilder(PathArgument node);
+ abstract NormalizedNodeBuilder<? extends PathArgument, Object, ? extends NormalizedNode> getBuilder(
+ PathArgument node);
static final class LeafNormalization extends InstanceIdToSimpleNodes<NodeIdentifier> {
LeafNormalization(final LeafSchemaNode potential) {
}
@Override
- NormalizedNodeAttrBuilder<NodeIdentifier, Object, LeafNode<Object>> getBuilder(final PathArgument node) {
+ NormalizedNodeBuilder<NodeIdentifier, Object, LeafNode<Object>> getBuilder(final PathArgument node) {
return Builders.leafBuilder().withNodeIdentifier(getIdentifier());
}
}
static final class LeafListEntryNormalization extends InstanceIdToSimpleNodes<NodeWithValue> {
LeafListEntryNormalization(final LeafListSchemaNode potential) {
- super(new NodeWithValue<>(potential.getQName(), null));
+ // We are fudging a value here
+ super(new NodeWithValue<>(potential.getQName(), Empty.getInstance()));
}
@Override
- NormalizedNodeAttrBuilder<NodeWithValue, Object, LeafSetEntryNode<Object>> getBuilder(final PathArgument node) {
+ NormalizedNodeBuilder<NodeWithValue, Object, LeafSetEntryNode<Object>> getBuilder(final PathArgument node) {
checkArgument(node instanceof NodeWithValue);
return Builders.leafSetEntryBuilder().withNodeIdentifier((NodeWithValue<?>) node)
.withValue(((NodeWithValue<?>) node).getValue());