private static AbstractMap.SimpleEntry<YangInstanceIdentifier.PathArgument, DataContainerChild<? extends YangInstanceIdentifier.PathArgument, ?>> childMapEntry( final DataContainerChild node) { return new HashMap.SimpleEntry<YangInstanceIdentifier.PathArgument, DataContainerChild<? extends YangInstanceIdentifier.PathArgument, ?>>( node.getIdentifier(), node); }
public DataContainerChild<?, ?> validateChild(final DataContainerChild<?, ?> child) { validateChild(child.getIdentifier()); return child; }
@Override public DataContainerNodeBuilder<I, R> withChild(final DataContainerChild<?, ?> child) { checkDirty(); this.value.put(child.getIdentifier(), child); return this; }
@Override public DataContainerNodeBuilder<I, R> withChild(final DataContainerChild<?, ?> child) { checkDirty(); this.value.put(child.getIdentifier(), child); return this; }
private Set<? extends YangInstanceIdentifier.PathArgument> getChildQNames(final Optional<N> actual) { Set<YangInstanceIdentifier.PathArgument> qNames = Sets.newLinkedHashSet(); for (DataContainerChild<? extends YangInstanceIdentifier.PathArgument, ?> child : actual.get().getValue()) { qNames.add(child.getIdentifier()); } return qNames; }
@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); }
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(); }
@Override public DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> withChild(final DataContainerChild<?, ?> child) { validator.validateChild(child.getIdentifier()); return super.withChild(child); }
@Override public DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> withChild( final DataContainerChild<?, ?> child) { validator.validateChild(child.getIdentifier()); return super.withChild(child); }
@Override public DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> withChild( final DataContainerChild<?, ?> child) { validator.validateChild(child.getIdentifier()); return super.withChild(child); }
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(); }
@Override public DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> withChild(final DataContainerChild<?, ?> child) { validator.validateChild(child.getIdentifier()); return super.withChild(child); }
@Override public DataContainerNodeBuilder<NodeIdentifier, ChoiceNode> withChild(final DataContainerChild<?, ?> child) { if (validator == null) { Optional<CaseSchemaNode> detectedCaseOpt = SchemaUtils.detectCase(schema, child); DataValidationException.checkLegalChild(detectedCaseOpt.isPresent(), child.getIdentifier(), schema); validator = new DataNodeContainerValidator(detectedCaseOpt.get()); } return super.withChild(validator.validateChild(child)); }
@Override public DataContainerNodeBuilder<NodeIdentifier, ChoiceNode> withChild(final DataContainerChild<?, ?> child) { if (validator == null) { Optional<CaseSchemaNode> detectedCaseOpt = SchemaUtils.detectCase(schema, child); DataValidationException.checkLegalChild(detectedCaseOpt.isPresent(), child.getIdentifier(), schema); validator = new DataNodeContainerValidator(detectedCaseOpt.get()); } return super.withChild(validator.validateChild(child)); }
private void validateDataContainerNodeData(final DataContainerNode<?> node, final LeafRefContext referencedByCtx, final LeafRefContext referencingCtx, final ModificationType modificationType, final YangInstanceIdentifier current) { for (final DataContainerChild<?, ?> child : node.getValue()) { if (child instanceof AugmentationNode) { validateNodeData(child, referencedByCtx, referencingCtx, modificationType, current.node( child.getIdentifier())); return; } validateChildNodeData(child, referencedByCtx, referencingCtx, modificationType, current); } }
private void validateDataContainerNodeData(final DataContainerNode<?> node, final LeafRefContext referencedByCtx, final LeafRefContext referencingCtx, final ModificationType modificationType, final YangInstanceIdentifier current) { for (final DataContainerChild<?, ?> child : node.getValue()) { if (child instanceof AugmentationNode) { validateNodeData(child, referencedByCtx, referencingCtx, modificationType, current.node( child.getIdentifier())); return; } validateChildNodeData(child, referencedByCtx, referencingCtx, modificationType, current); } }
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())); } }