private static void fillQnames(final Iterable<DataContainerChild<? extends PathArgument, ?>> iterable, final Map<QName, PathArgument> out) { for (final DataContainerChild<? extends PathArgument, ?> childId : iterable) { final PathArgument identifier = childId.getIdentifier(); // Augmentation nodes cannot be keys, and do not have to be present in childrenQNamesToPaths map if (isAugment(identifier)) { continue; } out.put(childId.getNodeType(), identifier); } }
private static void fillQnames(final Iterable<DataContainerChild<? extends PathArgument, ?>> iterable, final Map<QName, PathArgument> out) { for (final DataContainerChild<? extends PathArgument, ?> childId : iterable) { final PathArgument identifier = childId.getIdentifier(); // Augmentation nodes cannot be keys, and do not have to be present in childrenQNamesToPaths map if (isAugment(identifier)) { continue; } out.put(childId.getNodeType(), identifier); } }
public static Optional<CaseSchemaNode> detectCase(final ChoiceSchemaNode schema, final DataContainerChild<?, ?> child) { for (final CaseSchemaNode choiceCaseNode : schema.getCases().values()) { if (child instanceof AugmentationNode && belongsToCaseAugment(choiceCaseNode, (AugmentationIdentifier) child.getIdentifier())) { return Optional.of(choiceCaseNode); } else if (choiceCaseNode.getDataChildByName(child.getNodeType()) != null) { return Optional.of(choiceCaseNode); } } return Optional.empty(); }
public static Optional<CaseSchemaNode> detectCase(final ChoiceSchemaNode schema, final DataContainerChild<?, ?> child) { for (final CaseSchemaNode choiceCaseNode : schema.getCases().values()) { if (child instanceof AugmentationNode && belongsToCaseAugment(choiceCaseNode, (AugmentationIdentifier) child.getIdentifier())) { return Optional.of(choiceCaseNode); } else if (choiceCaseNode.getDataChildByName(child.getNodeType()) != null) { return Optional.of(choiceCaseNode); } } return Optional.empty(); }
private boolean isTransitiveAttribute(final DataContainerChild<? extends PathArgument, ?> child) { if (child.getIdentifier() instanceof AugmentationIdentifier) { final AugmentationIdentifier ai = (AugmentationIdentifier) child.getIdentifier(); for (final QName name : ai.getPossibleChildNames()) { LOG.trace("Augmented QNAME {}", name); if (this.transitiveCollection.contains(name)) { return true; } } return false; } if (this.transitiveCollection.contains(child.getNodeType())) { return true; } if (UnrecognizedAttributes.QNAME.equals(child.getNodeType())) { final Optional<NormalizedNode<?, ?>> maybeTransitive = NormalizedNodes.findNode(child, this.transitiveLeaf); if (maybeTransitive.isPresent()) { return (Boolean) maybeTransitive.get().getValue(); } } return false; }
@Override public DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> withChild( 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()); } return super.withChild(child); }
@Override public DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> withChild( 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()); } return super.withChild(child); }
@Override public DataContainerNodeBuilder<AugmentationIdentifier, AugmentationNode> withChild( final DataContainerChild<?, ?> child) { // Check nested augments DataValidationException.checkLegalData(!(child instanceof AugmentationNode), "Unable to add: %s, as a child for: %s, Nested augmentations are not permitted", child.getNodeType(), getNodeIdentifier() == null ? this : getNodeIdentifier()); return super.withChild(child); }
@Override public DataContainerNodeBuilder<AugmentationIdentifier, AugmentationNode> withChild( final DataContainerChild<?, ?> child) { // Check nested augments DataValidationException.checkLegalData(!(child instanceof AugmentationNode), "Unable to add: %s, as a child for: %s, Nested augmentations are not permitted", child.getNodeType(), getNodeIdentifier() == null ? this : getNodeIdentifier()); return super.withChild(child); }
@Nonnull @Override public DataObject getNodeData(@Nonnull YangInstanceIdentifier yangInstanceIdentifier, @Nonnull String resourcePath) { final InputStream resourceStream = this.getClass().getResourceAsStream(resourcePath); checkState(resourceStream != null, "Resource %s not found", resourcePath); final YangInstanceIdentifier nodeParent = getNodeParent(yangInstanceIdentifier).orElse(null); final SchemaNode parentSchema = parentSchema(schemaContext(), serializer(), nodeParent, LOG); // to be able to process containers in root of model if (isRoot(yangInstanceIdentifier)) { // if root ,read as root final ContainerNode data = readJson(schemaContext(), resourceStream, parentSchema); checkState(data.getValue().size() == 1, "Single root expected in %s", resourcePath); //then extracts first child final QName rootNodeType = data.getValue().iterator().next().getNodeType(); final YangInstanceIdentifier realIdentifier = YangInstanceIdentifier.of(rootNodeType); return nodeBinding(serializer(), realIdentifier, data).getValue(); } else { // reads just container final YangInstanceIdentifier.NodeIdentifier nodeIdentifier = containerNodeIdentifier(yangInstanceIdentifier); final ContainerNode data = readContainerEntryJson(schemaContext(), resourceStream, parentSchema, nodeIdentifier); return nodeBinding(serializer(), yangInstanceIdentifier, data.getValue().iterator().next()).getValue(); } }
private void validateChildNodeData(final DataContainerChild<?, ?> child, final LeafRefContext referencedByCtx, final LeafRefContext referencingCtx, final ModificationType modificationType, final YangInstanceIdentifier current) { final QName qname = child.getNodeType(); final LeafRefContext childReferencedByCtx = referencedByCtx == null ? null : referencedByCtx.getReferencedChildByName(qname); final LeafRefContext childReferencingCtx = referencingCtx == null ? null : referencingCtx.getReferencingChildByName(qname); if (childReferencedByCtx != null || childReferencingCtx != null) { validateNodeData(child, childReferencedByCtx, childReferencingCtx, modificationType, current.node( child.getIdentifier())); } }
private void validateChildNodeData(final DataContainerChild<?, ?> child, final LeafRefContext referencedByCtx, final LeafRefContext referencingCtx, final ModificationType modificationType, final YangInstanceIdentifier current) { final QName qname = child.getNodeType(); final LeafRefContext childReferencedByCtx = referencedByCtx == null ? null : referencedByCtx.getReferencedChildByName(qname); final LeafRefContext childReferencingCtx = referencingCtx == null ? null : referencingCtx.getReferencingChildByName(qname); if (childReferencedByCtx != null || childReferencingCtx != null) { validateNodeData(child, childReferencedByCtx, childReferencingCtx, modificationType, current.node( child.getIdentifier())); } }
private void validateChoiceNodeData(final ChoiceNode node, final LeafRefContext referencedByCtx, final LeafRefContext referencingCtx, final ModificationType modificationType, final YangInstanceIdentifier current) { for (final DataContainerChild<?, ?> child : node.getValue()) { final QName qname = child.getNodeType(); final LeafRefContext childReferencedByCtx = referencedByCtx == null ? null : findReferencedByCtxUnderChoice(referencedByCtx, qname); final LeafRefContext childReferencingCtx = referencingCtx == null ? null : findReferencingCtxUnderChoice(referencingCtx, qname); if (childReferencedByCtx != null || childReferencingCtx != null) { validateNodeData(child, childReferencedByCtx, childReferencingCtx, modificationType, current.node(child.getIdentifier())); } } }
private void validateChoiceNodeData(final ChoiceNode node, final LeafRefContext referencedByCtx, final LeafRefContext referencingCtx, final ModificationType modificationType, final YangInstanceIdentifier current) { for (final DataContainerChild<?, ?> child : node.getValue()) { final QName qname = child.getNodeType(); final LeafRefContext childReferencedByCtx = referencedByCtx == null ? null : findReferencedByCtxUnderChoice(referencedByCtx, qname); final LeafRefContext childReferencingCtx = referencingCtx == null ? null : findReferencingCtxUnderChoice(referencingCtx, qname); if (childReferencedByCtx != null || childReferencingCtx != null) { validateNodeData(child, childReferencedByCtx, childReferencingCtx, modificationType, current.node(child.getIdentifier())); } } }
return true; if (!qnames.contains(input.getNodeType())) { return true;
return true; if (!qnames.contains(input.getNodeType())) { return true;