private static LeafSetEntryNode<?> getReferencedLeafSetEntryNode(final LeafSetNode<?> referencedNode, final Object currentNodeValue) { for (final LeafSetEntryNode<?> entryNode : referencedNode.getValue()) { if (currentNodeValue.equals(entryNode.getValue())) { return entryNode; } } return null; }
@Override public ListNodeBuilder<T, LeafSetEntryNode<T>> withChild(final LeafSetEntryNode<T> child) { checkArgument(schema.getQName().equals(child.getNodeType()), "Incompatible node type, should be: %s, is: %s", schema.getQName(), child.getNodeType()); // TODO check value type using TypeProvider ? DataValidationException.checkLegalChild(schema.getQName().equals(child.getNodeType()), child.getIdentifier(), schema, Collections.singleton(schema.getQName())); return super.withChild(child); }
@Override protected Node<?> serializeLeaf(LeafListSchemaNode schema, LeafSetEntryNode<?> node) { return NodeFactory.createMutableSimpleNode( node.getNodeType(), null, node.getValue(), null, null); } }
protected boolean wasProcessAsSimpleNode(final NormalizedNode<?, ?> node) throws IOException { if (node instanceof LeafSetEntryNode) { final LeafSetEntryNode<?> nodeAsLeafList = (LeafSetEntryNode<?>)node; final QName name = nodeAsLeafList.getIdentifier().getNodeType(); if (writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafSetEntryNode(name, nodeAsLeafList.getValue(), nodeAsLeafList.getAttributes()); } else { writer.leafSetEntryNode(name, nodeAsLeafList.getValue()); } return true; } else if (node instanceof LeafNode) { final LeafNode<?> nodeAsLeaf = (LeafNode<?>)node; if (writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue(), nodeAsLeaf.getAttributes()); } else { writer.leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue()); } return true; } else if (node instanceof AnyXmlNode) { final AnyXmlNode anyXmlNode = (AnyXmlNode)node; writer.anyxmlNode(anyXmlNode.getIdentifier(), anyXmlNode.getValue()); return true; } return false; }
private boolean wasProcessAsSimpleNode(final NormalizedNode<?, ?> node) throws IOException { if (node instanceof LeafSetEntryNode) { final LeafSetEntryNode<?> nodeAsLeafList = (LeafSetEntryNode<?>)node; if(writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafSetEntryNode(nodeAsLeafList.getValue(), nodeAsLeafList.getAttributes()); } else { writer.leafSetEntryNode(nodeAsLeafList.getValue()); } return true; } else if (node instanceof LeafNode) { final LeafNode<?> nodeAsLeaf = (LeafNode<?>)node; if(writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue(), nodeAsLeaf.getAttributes()); } else { writer.leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue()); } return true; } else if (node instanceof AnyXmlNode) { final AnyXmlNode anyXmlNode = (AnyXmlNode)node; writer.anyxmlNode(anyXmlNode.getIdentifier(), anyXmlNode.getValue()); return true; } return false; }
@Override public ListNodeBuilder<T, LeafSetEntryNode<T>> withChild(final LeafSetEntryNode<T> child) { this.value.put(child.getIdentifier(), child); return this; }
@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; } } }
@SuppressWarnings("static-method") public <T extends LeafSetEntryNode<?>> @NonNull T intern(final @NonNull T sample) { if (!sample.getAttributes().isEmpty()) { // Non-empty attributes, do not intern return sample; } /* * We do not perform type checks here as they are implied by #forSchema(LeafListSchemaNode). Any misuse can * result in inappropriate candidates being interned, but the alternative would be quite a bit slower. */ @SuppressWarnings("unchecked") final T ret = (T) INTERNER.intern(sample); LOG.trace("Interned object {} to {}", sample, ret); return ret; }
protected boolean wasProcessAsSimpleNode(final NormalizedNode<?, ?> node) throws IOException { if (node instanceof LeafSetEntryNode) { final LeafSetEntryNode<?> nodeAsLeafList = (LeafSetEntryNode<?>)node; final QName name = nodeAsLeafList.getIdentifier().getNodeType(); if (writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafSetEntryNode(name, nodeAsLeafList.getValue(), nodeAsLeafList.getAttributes()); } else { writer.leafSetEntryNode(name, nodeAsLeafList.getValue()); } return true; } else if (node instanceof LeafNode) { final LeafNode<?> nodeAsLeaf = (LeafNode<?>)node; if (writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue(), nodeAsLeaf.getAttributes()); } else { writer.leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue()); } return true; } else if (node instanceof AnyXmlNode) { final AnyXmlNode anyXmlNode = (AnyXmlNode)node; writer.anyxmlNode(anyXmlNode.getIdentifier(), anyXmlNode.getValue()); return true; } return false; }
private boolean wasProcessAsSimpleNode(final NormalizedNode<?, ?> node) throws IOException { if (node instanceof LeafSetEntryNode) { if (currentDepth < maxDepth) { final LeafSetEntryNode<?> nodeAsLeafList = (LeafSetEntryNode<?>) node; if (writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafSetEntryNode(nodeAsLeafList.getValue(), nodeAsLeafList.getAttributes()); } else { writer.leafSetEntryNode(nodeAsLeafList.getValue()); } } return true; } else if (node instanceof LeafNode) { final LeafNode<?> nodeAsLeaf = (LeafNode<?>)node; if(writer instanceof NormalizedNodeStreamAttributeWriter) { ((NormalizedNodeStreamAttributeWriter) writer).leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue(), nodeAsLeaf.getAttributes()); } else { writer.leafNode(nodeAsLeaf.getIdentifier(), nodeAsLeaf.getValue()); } return true; } else if (node instanceof AnyXmlNode) { final AnyXmlNode anyXmlNode = (AnyXmlNode)node; writer.anyxmlNode(anyXmlNode.getIdentifier(), anyXmlNode.getValue()); return true; } return false; }
@Override public ListNodeBuilder<T, LeafSetEntryNode<T>> withChild(final LeafSetEntryNode<T> child) { this.value.put(child.getIdentifier(), child); return this; }
@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; } } }
@SuppressWarnings("static-method") public <T extends LeafSetEntryNode<?>> @NonNull T intern(final @NonNull T sample) { if (!sample.getAttributes().isEmpty()) { // Non-empty attributes, do not intern return sample; } /* * We do not perform type checks here as they are implied by #forSchema(LeafListSchemaNode). Any misuse can * result in inappropriate candidates being interned, but the alternative would be quite a bit slower. */ @SuppressWarnings("unchecked") final T ret = (T) INTERNER.intern(sample); LOG.trace("Interned object {} to {}", sample, ret); return ret; }
private static LeafSetEntryNode<?> getReferencedLeafSetEntryNode(final LeafSetNode<?> referencedNode, final Object currentNodeValue) { for (final LeafSetEntryNode<?> entryNode : referencedNode.getValue()) { if (currentNodeValue.equals(entryNode.getValue())) { return entryNode; } } return null; }
@Override public ListNodeBuilder<T, LeafSetEntryNode<T>> withChild(final LeafSetEntryNode<T> child) { checkArgument(schema.getQName().equals(child.getNodeType()), "Incompatible node type, should be: %s, is: %s", schema.getQName(), child.getNodeType()); // TODO check value type using TypeProvider ? DataValidationException.checkLegalChild(schema.getQName().equals(child.getNodeType()), child.getIdentifier(), schema, Collections.singleton(schema.getQName())); return super.withChild(child); }
@Override public ListNodeBuilder<T, LeafSetEntryNode<T>> withChild(final LeafSetEntryNode<T> child) { checkDirty(); this.value.put(child.getIdentifier(), child); return this; }
@Override protected Object deserializeObject(final NormalizedNode<?, ?> normalizedNode) { if (normalizedNode instanceof LeafNode<?>) { return valueCodec.deserialize(normalizedNode.getValue()); } if (normalizedNode instanceof LeafSetNode<?>) { @SuppressWarnings("unchecked") final Collection<LeafSetEntryNode<Object>> domValues = ((LeafSetNode<Object>) normalizedNode).getValue(); final List<Object> result = new ArrayList<>(domValues.size()); for (final LeafSetEntryNode<Object> valueNode : domValues) { result.add(valueCodec.deserialize(valueNode.getValue())); } return result; } return null; }
@Override public ListNodeBuilder<T, LeafSetEntryNode<T>> withChild(final LeafSetEntryNode<T> child) { checkArgument(schema.getQName().equals(child.getNodeType()), "Incompatible node type, should be: %s, is: %s", schema.getQName(), child.getNodeType()); // TODO check value type using TypeProvider ? DataValidationException.checkLegalChild(schema.getQName().equals(child.getNodeType()), child.getIdentifier(), schema, Collections.singleton(schema.getQName())); return super.withChild(child); }
private static boolean contains(Optional<LeafSetNode<?>> actual, LeafSetEntryNode<?> leafListModification) { boolean contains = actual.isPresent(); contains &= actual.get().getChild(leafListModification.getIdentifier()).isPresent(); return contains; } }
@Override protected Object deserializeObject(final NormalizedNode<?, ?> normalizedNode) { if (normalizedNode instanceof LeafNode<?>) { return valueCodec.deserialize(normalizedNode.getValue()); } if (normalizedNode instanceof LeafSetNode<?>) { @SuppressWarnings("unchecked") final Collection<LeafSetEntryNode<Object>> domValues = ((LeafSetNode<Object>) normalizedNode).getValue(); final List<Object> result = new ArrayList<>(domValues.size()); for (final LeafSetEntryNode<Object> valueNode : domValues) { result.add(valueCodec.deserialize(valueNode.getValue())); } return result; } return null; }