@Override public synchronized void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { delegate.merge(path, data); }
@Override public synchronized void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { delegate.merge(path, data); }
@Override void doMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { modification.merge(path, data); }
@Override public final void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { modification.merge(path, data); }
private void pruneAndMergeNode(YangInstanceIdentifier yangInstanceIdentifier, NormalizedNode<?, ?> normalizedNode) { NormalizedNode<?,?> pruned = pruneNormalizedNode(yangInstanceIdentifier, normalizedNode); if(pruned != null) { delegate.merge(yangInstanceIdentifier, pruned); } }
@SuppressWarnings("checkstyle:IllegalCatch") @Override public void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { checkNotReady(); final DataTreeModification tree = mutableTree; LOG.debug("Tx: {} Merge: {}:{}", getIdentifier(), path, data); try { tree.merge(path, data); // FIXME: Add checked exception } catch (Exception e) { LOG.error("Tx: {}, failed to write {}:{} in {}", getIdentifier(), path, data, tree, e); // Rethrow original ones if they are subclasses of RuntimeException or Error Throwables.throwIfUnchecked(e); // FIXME: Introduce proper checked exception throw new IllegalArgumentException("Illegal input data.", e); } }
@Override public void apply(final DataTreeModification transaction) { transaction.merge(getPath(), getData()); }
@Override public void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { checkNotReady(); final DataTreeModification tree = mutableTree; LOG.debug("Tx: {} Merge: {}:{}", getIdentifier(), path, data); try { tree.merge(path, data); // FIXME: Add checked exception } catch (Exception e) { LOG.error("Tx: {}, failed to write {}:{} in {}", getIdentifier(), path, data, tree, e); // Rethrow original ones if they are subclasses of RuntimeException // or Error Throwables.propagateIfPossible(e); // FIXME: Introduce proper checked exception throw new IllegalArgumentException("Illegal input data.", e); } }
@Override @SuppressWarnings("checkstyle:IllegalCatch") public void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { checkNotReady(); final DataTreeModification tree = mutableTree; LOG.debug("Tx: {} Merge: {}:{}", getIdentifier(), path, data); try { tree.merge(path, data); // FIXME: Add checked exception } catch (RuntimeException e) { LOG.error("Tx: {}, failed to write {}:{} in {}", getIdentifier(), path, data, tree, e); // Rethrow original ones if they are subclasses of RuntimeException // or Error Throwables.propagateIfPossible(e); // FIXME: Introduce proper checked exception throw new IllegalArgumentException("Illegal input data.", e); } }
@Override public void merge(PathArgument child, NormalizedNode<?, ?> data) { YangInstanceIdentifier path = current().node(child); NormalizedNode<?, ?> prunedNode = pruningModification.pruneNormalizedNode(path, data); if(prunedNode != null) { toModification.merge(path, prunedNode); } }
@Override public void merge(YangInstanceIdentifier yangInstanceIdentifier, NormalizedNode<?, ?> normalizedNode) { try { if(YangInstanceIdentifier.EMPTY.equals(yangInstanceIdentifier)){ pruneAndMergeNode(yangInstanceIdentifier, normalizedNode); } else { delegate.merge(yangInstanceIdentifier, normalizedNode); } } catch (SchemaValidationFailedException e){ LOG.warn("Node at path {} was pruned during merge due to validation error: {}", yangInstanceIdentifier, e.getMessage()); pruneAndMergeNode(yangInstanceIdentifier, normalizedNode); } }
private NormalizedNodeAggregator combine() throws DataValidationFailedException { final DataTreeModification mod = dataTree.takeSnapshot().newModification(); for (final Optional<NormalizedNode<?,?>> node : nodes) { if (node.isPresent()) { mod.merge(rootIdentifier, node.get()); } } mod.ready(); dataTree.validate(mod); final DataTreeCandidate candidate = dataTree.prepare(mod); dataTree.commit(candidate); return this; }