/** * Convert a data subtree under a node into a human-readable string format. * * @param node Data subtree root * @return String containing a human-readable form of the subtree. */ public static String toStringTree(final NormalizedNode<?, ?> node) { final StringBuilder builder = new StringBuilder(); toStringTree(builder, node, 0); return builder.toString(); }
/** * Convert a data subtree under a node into a human-readable string format. * * @param node Data subtree root * @return String containing a human-readable form of the subtree. */ public static String toStringTree(final NormalizedNode<?, ?> node) { final StringBuilder builder = new StringBuilder(); toStringTree(builder, node, 0); return builder.toString(); }
@Override public String toString() { final TreeNode r = root; return MoreObjects.toStringHelper(this).add("data", NormalizedNodes.toStringTree(r.getData())).toString(); } }
@Override public String toString() { final TreeNode r = root; return MoreObjects.toStringHelper(this).add("data", NormalizedNodes.toStringTree(r.getData())).toString(); } }
private static void toStringTree(final StringBuilder builder, final NormalizedNode<?, ?> node, final int offset) { final String prefix = Strings.repeat(" ", offset); builder.append(prefix).append(toStringTree(node.getIdentifier())); if (node instanceof NormalizedNodeContainer<?, ?, ?>) { final NormalizedNodeContainer<?, ?, ?> container = (NormalizedNodeContainer<?, ?, ?>) node; builder.append(" {\n"); for (NormalizedNode<?, ?> child : container.getValue()) { toStringTree(builder, child, offset + STRINGTREE_INDENT); } builder.append(prefix).append('}'); } else { builder.append(' ').append(node.getValue()); } builder.append('\n'); }
private static void toStringTree(final StringBuilder builder, final NormalizedNode<?, ?> node, final int offset) { final String prefix = Strings.repeat(" ", offset); builder.append(prefix).append(toStringTree(node.getIdentifier())); if (node instanceof NormalizedNodeContainer<?, ?, ?>) { final NormalizedNodeContainer<?, ?, ?> container = (NormalizedNodeContainer<?, ?, ?>) node; builder.append(" {\n"); for (NormalizedNode<?, ?> child : container.getValue()) { toStringTree(builder, child, offset + STRINGTREE_INDENT); } builder.append(prefix).append('}'); } else { builder.append(' ').append(node.getValue()); } builder.append('\n'); }
private Attributes routeAttributes(final MapEntryNode route) { if (LOG.isDebugEnabled()) { LOG.debug("AdjRibOut parsing route {}", NormalizedNodes.toStringTree(route)); } final ContainerNode advertisedAttrs = (ContainerNode) NormalizedNodes.findNode(route, this.support.routeAttributesIdentifier()).orNull(); return this.codecs.deserializeAttributes(advertisedAttrs); }
@Override public void commit(final DataTreeCandidate candidate) { if (candidate instanceof NoopDataTreeCandidate) { return; } checkArgument(candidate instanceof InMemoryDataTreeCandidate, "Invalid candidate class %s", candidate.getClass()); final InMemoryDataTreeCandidate c = (InMemoryDataTreeCandidate)candidate; if (LOG.isTraceEnabled()) { LOG.trace("Data Tree is {}", NormalizedNodes.toStringTree(c.getTipRoot().getData())); } final TreeNode newRoot = c.getTipRoot(); DataTreeState currentState; DataTreeState newState; do { currentState = state; final TreeNode currentRoot = currentState.getRoot(); LOG.debug("Updating datastore from {} to {}", currentRoot, newRoot); final TreeNode oldRoot = c.getBeforeRoot(); if (oldRoot != currentRoot) { final String oldStr = simpleToString(oldRoot); final String currentStr = simpleToString(currentRoot); throw new IllegalStateException("Store tree " + currentStr + " and candidate base " + oldStr + " differ."); } newState = currentState.withRoot(newRoot); LOG.trace("Updated state from {} to {}", currentState, newState); } while (!STATE_UPDATER.compareAndSet(this, currentState, newState)); }
@Override public void commit(final DataTreeCandidate candidate) { if (candidate instanceof NoopDataTreeCandidate) { return; } checkArgument(candidate instanceof InMemoryDataTreeCandidate, "Invalid candidate class %s", candidate.getClass()); final InMemoryDataTreeCandidate c = (InMemoryDataTreeCandidate)candidate; if (LOG.isTraceEnabled()) { LOG.trace("Data Tree is {}", NormalizedNodes.toStringTree(c.getTipRoot().getData())); } final TreeNode newRoot = c.getTipRoot(); DataTreeState currentState; DataTreeState newState; do { currentState = state; final TreeNode currentRoot = currentState.getRoot(); LOG.debug("Updating datastore from {} to {}", currentRoot, newRoot); final TreeNode oldRoot = c.getBeforeRoot(); if (oldRoot != currentRoot) { final String oldStr = simpleToString(oldRoot); final String currentStr = simpleToString(currentRoot); throw new IllegalStateException("Store tree " + currentStr + " and candidate base " + oldStr + " differ."); } newState = currentState.withRoot(newRoot); LOG.trace("Updated state from {} to {}", currentState, newState); } while (!STATE_UPDATER.compareAndSet(this, currentState, newState)); }