private void writeRouteTables(final DataTreeCandidateNode child, final PathArgument childIdentifier, final DOMDataWriteTransaction tx, final RIBSupport ribSupport, final AbstractImportPolicy policy, final YangInstanceIdentifier childPath, final Optional<NormalizedNode<?, ?>> childDataAfter) { if (TABLE_ROUTES.equals(childIdentifier)) { final Collection<DataTreeCandidateNode> changedRoutes = ribSupport.changedRoutes(child); if (!changedRoutes.isEmpty()) { tx.put(LogicalDatastoreType.OPERATIONAL, childPath, childDataAfter.get()); // Routes are special, as they may end up being filtered. The previous put conveniently // ensured that we have them in at target, so a subsequent delete will not fail :) for (final DataTreeCandidateNode route : changedRoutes) { processRoute(tx, ribSupport, policy, childPath, route); } } } }
@Override public Optional<DataContainerChild<? extends PathArgument, ?>> getChild(final PathArgument child) { /* * Use precached value of routing field and do not run full serialization if we are * accessing it. */ if (contextRef.getIdentifier().equals(child)) { return Optional.<DataContainerChild<? extends PathArgument, ?>>of(contextRef); } return super.getChild(child); } }
@Override public Optional<DataContainerChild<? extends PathArgument, ?>> getChild(final PathArgument child) { /* * Use precached value of routing field and do not run full serialization if we are accessing it. */ if (contextRef.getIdentifier().equals(child)) { return Optional.of(contextRef); } return super.getChild(child); } }
if (EffectiveRibInWriter.TABLE_ROUTES.equals(childIdentifier)) { processRoutesTable(child, tableId, tx, tableId); break;
private void processModifiedRouteTables(final DataTreeCandidateNode child, final PathArgument childIdentifier, final DOMDataWriteTransaction tx, final RIBSupport ribSupport, final AbstractImportPolicy policy, final YangInstanceIdentifier childPath, final Optional<NormalizedNode<?, ?>> childDataAfter) { if (TABLE_ROUTES.equals(childIdentifier)) { for (final DataTreeCandidateNode route : ribSupport.changedRoutes(child)) { processRoute(tx, ribSupport, policy, childPath, route); } } else { tx.put(LogicalDatastoreType.OPERATIONAL, childPath, childDataAfter.get()); } }
@Override public Optional<DataContainerChild<? extends PathArgument, ?>> getChild(final PathArgument child) { // Use pre-cached value of routing field and do not run full serialization if we are accessing it. return contextRef.getIdentifier().equals(child) ? Optional.of(contextRef) : super.getChild(child); } }