protected ImmutableMapEntryNodeBuilder(final ImmutableMapEntryNode node) {
super(node);
this.childrenQNamesToPaths = new LinkedHashMap<>();
- fillQnames(node.getValue(), childrenQNamesToPaths);
+ fillQnames(node.body(), childrenQNamesToPaths);
}
public static @NonNull DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> create() {
return new ImmutableMapEntryNodeBuilder((ImmutableMapEntryNode)node);
}
- private static void fillQnames(final Iterable<DataContainerChild<? extends PathArgument, ?>> iterable,
- final Map<QName, PathArgument> out) {
- for (final DataContainerChild<? extends PathArgument, ?> childId : iterable) {
+ private static void fillQnames(final Iterable<DataContainerChild> iterable, final Map<QName, PathArgument> out) {
+ for (final DataContainerChild childId : iterable) {
final PathArgument identifier = childId.getIdentifier();
// Augmentation nodes cannot be keys, and do not have to be present in childrenQNamesToPaths map
@Override
public DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> withValue(
- final Collection<DataContainerChild<? extends PathArgument, ?>> withValue) {
+ final Collection<DataContainerChild> withValue) {
fillQnames(withValue, childrenQNamesToPaths);
return super.withValue(withValue);
}
@Override
public DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> withChild(
- final DataContainerChild<?, ?> child) {
+ final DataContainerChild child) {
// Augmentation nodes cannot be keys, and do not have to be present in childrenQNamesToPaths map
if (!isAugment(child.getIdentifier())) {
childrenQNamesToPaths.put(child.getNodeType(), child.getIdentifier());
@Override
public MapEntryNode build() {
for (final Entry<QName, Object> key : getNodeIdentifier().entrySet()) {
- final DataContainerChild<?, ?> childNode = getChild(childrenQNamesToPaths.get(key.getKey()));
+ final DataContainerChild childNode = getChild(childrenQNamesToPaths.get(key.getKey()));
// We have enough information to fill-in missing leaf nodes, so let's do that
if (childNode == null) {
withChild(leaf);
} else {
DataValidationException.checkListKey(getNodeIdentifier(), key.getKey(), key.getValue(),
- childNode.getValue());
+ childNode.body());
}
}
}
private static final class ImmutableMapEntryNode
- extends AbstractImmutableDataContainerNode<NodeIdentifierWithPredicates> implements MapEntryNode {
+ extends AbstractImmutableDataContainerNode<NodeIdentifierWithPredicates, MapEntryNode>
+ implements MapEntryNode {
ImmutableMapEntryNode(final NodeIdentifierWithPredicates nodeIdentifier,
final Map<PathArgument, Object> children) {
super(children, nodeIdentifier);
}
+
+ @Override
+ protected Class<MapEntryNode> implementedType() {
+ return MapEntryNode.class;
+ }
}
}