static void addModifyOpIfPresent(final Optional<Entry<QName, ModifyAction>> operation, final AttributesBuilder<?> builder) { if (operation.isPresent()) { final Entry<QName, ModifyAction> entry = operation.get(); builder.withAttributes(ImmutableMap.of(entry.getKey(), entry.getValue().name().toLowerCase())); } }
static void addModifyOpIfPresent(final Optional<Entry<QName, ModifyAction>> operation, final AttributesBuilder<?> builder) { if (operation.isPresent()) { final Entry<QName, ModifyAction> entry = operation.get(); builder.withAttributes(ImmutableMap.of(entry.getKey(), entry.getValue().name().toLowerCase())); } }
@Nullable @Override public N build(final NormalizedNodeBuilder<P, ?, N> builder) { if (builder instanceof AttributesBuilder<?>) { ((AttributesBuilder<?>) builder).withAttributes(Collections.<QName, String>emptyMap()); } final N node = builder.build(); final ModifyAction currentAction = dataTreeChangeTracker.popAction(); //if we know that we are going to delete a parent node just complete the entire subtree if (dataTreeChangeTracker.getDeleteOperationTracker() > 0 || dataTreeChangeTracker.getRemoveOperationTracker() > 0) { dataTreeChangeTracker.popPath(); return node; } else { //if parent and current actions dont match create a DataTreeChange and add it to the change list //dont add a new child to the parent node if (!currentAction.equals(dataTreeChangeTracker.peekAction())) { dataTreeChangeTracker.addDataTreeChange(new DataTreeChangeTracker.DataTreeChange(node, currentAction, new ArrayList<>(dataTreeChangeTracker.getCurrentPath()))); dataTreeChangeTracker.popPath(); return null; } else { dataTreeChangeTracker.popPath(); return node; } } }
@Nullable @Override public N build(final NormalizedNodeBuilder<P, ?, N> builder) { if (builder instanceof AttributesBuilder<?>) { ((AttributesBuilder<?>) builder).withAttributes(Collections.<QName, String>emptyMap()); } final N node = builder.build(); final ModifyAction currentAction = dataTreeChangeTracker.popAction(); //if we know that we are going to delete a parent node just complete the entire subtree if (dataTreeChangeTracker.getDeleteOperationTracker() > 0 || dataTreeChangeTracker.getRemoveOperationTracker() > 0) { dataTreeChangeTracker.popPath(); return node; } else { //if parent and current actions dont match create a DataTreeChange and add it to the change list //dont add a new child to the parent node if (!currentAction.equals(dataTreeChangeTracker.peekAction())) { dataTreeChangeTracker.addDataTreeChange(new DataTreeChangeTracker.DataTreeChange(node, currentAction, new ArrayList<>(dataTreeChangeTracker.getCurrentPath()))); dataTreeChangeTracker.popPath(); return null; } else { dataTreeChangeTracker.popPath(); return node; } } }
@Nullable @Override public LeafNode<?> build(final NormalizedNodeBuilder<YangInstanceIdentifier.NodeIdentifier, ?, LeafNode<?>> builder) { LeafNode<?> node = builder.build(); String operation = (String) node.getAttributeValue(OPERATION_ATTRIBUTE); if (operation == null) { return node; } if(builder instanceof AttributesBuilder<?>) { ((AttributesBuilder<?>) builder).withAttributes(Collections.<QName, String>emptyMap()); } node = builder.build(); ModifyAction action = ModifyAction.fromXmlValue(operation); if (dataTreeChangeTracker.getDeleteOperationTracker() > 0 || dataTreeChangeTracker.getRemoveOperationTracker() > 0) { return node; } else { if (!action.equals(dataTreeChangeTracker.peekAction())) { dataTreeChangeTracker.pushPath(node.getIdentifier()); dataTreeChangeTracker.addDataTreeChange(new DataTreeChangeTracker.DataTreeChange(node, action, new ArrayList<>(dataTreeChangeTracker.getCurrentPath()))); dataTreeChangeTracker.popPath(); return null; } else { return node; } } }
@Nullable @Override public LeafSetEntryNode<?> build(final NormalizedNodeBuilder<YangInstanceIdentifier.NodeWithValue, ?, LeafSetEntryNode<?>> builder) { LeafSetEntryNode<?> node = builder.build(); String operation = (String) node.getAttributeValue(OPERATION_ATTRIBUTE); if (operation == null) { return node; } if (builder instanceof AttributesBuilder<?>) { ((AttributesBuilder<?>) builder).withAttributes(Collections.<QName, String>emptyMap()); } node = builder.build(); ModifyAction action = ModifyAction.fromXmlValue(operation); if (dataTreeChangeTracker.getDeleteOperationTracker() > 0 || dataTreeChangeTracker.getRemoveOperationTracker() > 0) { return node; } else { if (!action.equals(dataTreeChangeTracker.peekAction())) { dataTreeChangeTracker.pushPath(node.getIdentifier()); dataTreeChangeTracker.addDataTreeChange(new DataTreeChangeTracker.DataTreeChange(node, action, new ArrayList<>(dataTreeChangeTracker.getCurrentPath()))); dataTreeChangeTracker.popPath(); return null; } else { return node; } } }
@Nullable @Override public LeafNode<?> build(final NormalizedNodeBuilder<YangInstanceIdentifier.NodeIdentifier, ?, LeafNode<?>> builder) { LeafNode<?> node = builder.build(); String operation = (String) node.getAttributeValue(OPERATION_ATTRIBUTE); if (operation == null) { return node; } if(builder instanceof AttributesBuilder<?>) { ((AttributesBuilder<?>) builder).withAttributes(Collections.<QName, String>emptyMap()); } node = builder.build(); ModifyAction action = ModifyAction.fromXmlValue(operation); if (dataTreeChangeTracker.getDeleteOperationTracker() > 0 || dataTreeChangeTracker.getRemoveOperationTracker() > 0) { return node; } else { if (!action.equals(dataTreeChangeTracker.peekAction())) { dataTreeChangeTracker.pushPath(node.getIdentifier()); dataTreeChangeTracker.addDataTreeChange(new DataTreeChangeTracker.DataTreeChange(node, action, new ArrayList<>(dataTreeChangeTracker.getCurrentPath()))); dataTreeChangeTracker.popPath(); return null; } else { return node; } } }
@Nullable @Override public LeafSetEntryNode<?> build(final NormalizedNodeBuilder<YangInstanceIdentifier.NodeWithValue, ?, LeafSetEntryNode<?>> builder) { LeafSetEntryNode<?> node = builder.build(); String operation = (String) node.getAttributeValue(OPERATION_ATTRIBUTE); if (operation == null) { return node; } if (builder instanceof AttributesBuilder<?>) { ((AttributesBuilder<?>) builder).withAttributes(Collections.<QName, String>emptyMap()); } node = builder.build(); ModifyAction action = ModifyAction.fromXmlValue(operation); if (dataTreeChangeTracker.getDeleteOperationTracker() > 0 || dataTreeChangeTracker.getRemoveOperationTracker() > 0) { return node; } else { if (!action.equals(dataTreeChangeTracker.peekAction())) { dataTreeChangeTracker.pushPath(node.getIdentifier()); dataTreeChangeTracker.addDataTreeChange(new DataTreeChangeTracker.DataTreeChange(node, action, new ArrayList<>(dataTreeChangeTracker.getCurrentPath()))); dataTreeChangeTracker.popPath(); return null; } else { return node; } } }