@Override
 public InstanceIdToNodes<?> getChild(final PathArgument child) {
   if (child.getNodeType().equals(getIdentifier().getNodeType())) {
     return innerNode;
   }
   return null;
 }
 private InstanceIdToNodes<?> fromLocalSchema(final PathArgument child) {
   if (child instanceof AugmentationIdentifier) {
     return fromSchemaAndQNameChecked(
         schema, ((AugmentationIdentifier) child).getPossibleChildNames().iterator().next());
   }
   return fromSchemaAndQNameChecked(schema, child.getNodeType());
 }
  @Override
  @SuppressWarnings("unchecked")
  public final NormalizedNode<?, ?> create(
      final YangInstanceIdentifier instanceId,
      final Optional<NormalizedNode<?, ?>> lastChild,
      final Optional<Map.Entry<QName, ModifyAction>> operation) {
    checkNotNull(instanceId);
    final Iterator<PathArgument> iterator = instanceId.getPathArguments().iterator();
    final PathArgument legacyData = iterator.next();

    if (!isMixin() && getIdentifier().getNodeType() != null) {
      checkArgument(
          getIdentifier().getNodeType().equals(legacyData.getNodeType()),
          "Node QName must be %s was %s",
          getIdentifier().getNodeType(),
          legacyData.getNodeType());
    }
    final NormalizedNodeContainerBuilder builder = createBuilder(legacyData);

    if (iterator.hasNext()) {
      final PathArgument childPath = iterator.next();
      final InstanceIdToNodes<?> childOp = getChildOperation(childPath);

      final YangInstanceIdentifier childId =
          YangInstanceIdentifier.create(Iterables.skip(instanceId.getPathArguments(), 1));
      builder.addChild(childOp.create(childId, lastChild, operation));
    } else {
      if (lastChild.isPresent()) {
        builder.withValue(Lists.newArrayList((Collection<?>) lastChild.get().getValue()));
      }
      if (operation.isPresent()) {
        Preconditions.checkArgument(builder instanceof AttributesBuilder<?>);
        addModifyOpIfPresent(operation, ((AttributesBuilder<?>) builder));
      }
    }

    return builder.build();
  }