private static YangInstanceIdentifier.NodeIdentifierWithPredicates listNodeIdentifier(@Nonnull final YangInstanceIdentifier nodeIdentifier) { return java.util.Optional.ofNullable(nodeIdentifier.getLastPathArgument()) .filter(pathArgument -> pathArgument instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates) .map(YangInstanceIdentifier.NodeIdentifierWithPredicates.class::cast) .orElseThrow(() -> new IllegalArgumentException( String.format("Unable to create list node identifier from %s", nodeIdentifier))); } }
private static YangInstanceIdentifier.NodeIdentifier containerNodeIdentifier(@Nonnull final YangInstanceIdentifier nodeIdentifier) { return java.util.Optional.ofNullable(nodeIdentifier.getLastPathArgument()) .filter(pathArgument -> pathArgument instanceof YangInstanceIdentifier.NodeIdentifier) .map(YangInstanceIdentifier.NodeIdentifier.class::cast) .orElseThrow(() -> new IllegalArgumentException( String.format("Unable to create container node identifier from %s", nodeIdentifier))); } }
@Override protected String getServiceIdentifierFromEntity(final DOMEntity entity) { final YangInstanceIdentifier yii = entity.getIdentifier(); final NodeIdentifierWithPredicates niiwp = (NodeIdentifierWithPredicates) yii.getLastPathArgument(); return niiwp.getKeyValues().values().iterator().next().toString(); } }
private YangInstanceIdentifier.PathArgument convertToNormalized(final TreeArgument<?> child) { stack.push(child); final InstanceIdentifier<?> iid = InstanceIdentifier.create(stack); final YangInstanceIdentifier ret = codec.toNormalized(iid); stack.pop(); return ret.getLastPathArgument(); }
@Override public <P extends TreeNode> void write(final TreeArgument<P> child, final P data) { final Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> entry = convertToNormalized(child, data); delegate.write(entry.getKey().getLastPathArgument(), entry.getValue()); }
@Override public void peerRoleChanged(final YangInstanceIdentifier peerPath, final PeerRole role) { final PeerId peer = IdentifierUtils.peerId((NodeIdentifierWithPredicates) peerPath.getLastPathArgument()); if (role != null) { // Lookup policy based on role final AbstractImportPolicy policy = this.policyDatabase.importPolicyForRole(role); // Update lookup map this.policies.put(peer, policy); LOG.debug("Updating policy {} for peer {}", policy, peer); } else { this.policies.remove(peer); } }
@Override public <U extends TreeNode> void merge(final TreeArgument<U> child, final U data) { final Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> entry = convertToNormalized(child, data); delegate.merge(entry.getKey().getLastPathArgument(), entry.getValue()); }
private static void checkInstanceIdentifierReferencesData(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { final PathArgument lastArg = path.getLastPathArgument(); Preconditions.checkArgument( (lastArg == data.getIdentifier()) || (lastArg != null && lastArg.equals(data.getIdentifier())), "Instance identifier references %s but data identifier is %s", lastArg, data); }
@Override public PathArgument getIdentifier() { return rootContext.getIdentifier().getRootIdentifier().getLastPathArgument(); }
private YangInstanceIdentifier.PathArgument convertToNormalized(final PathArgument child) { stack.push(child); final InstanceIdentifier<?> iid = InstanceIdentifier.create(stack); final YangInstanceIdentifier ret = getCodec().toNormalized(iid); stack.pop(); return ret.getLastPathArgument(); }
@Override public <P extends DataObject> void merge(final PathArgument child, final P data) { final Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> entry = convertToNormalized(child, data); getDelegate().merge(entry.getKey().getLastPathArgument(), entry.getValue()); }
@Override public <P extends DataObject> void write(final PathArgument child, final P data) { final Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> entry = convertToNormalized(child, data); getDelegate().write(entry.getKey().getLastPathArgument(), entry.getValue()); }
@Override public PathArgument getIdentifier() { return boundary.getIdentifier().getRootIdentifier().getLastPathArgument(); }
private void checkIdentifierReferencesData(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { final PathArgument arg; if (!path.isEmpty()) { arg = path.getLastPathArgument(); checkArgument(arg != null, "Instance identifier %s has invalid null path argument", path); } else { arg = rootNode.getIdentifier(); } checkIdentifierReferencesData(arg, data); }
public static String entityTypeFromEntityPath(YangInstanceIdentifier entityPath){ YangInstanceIdentifier parent = entityPath; while(!parent.isEmpty()) { if (EntityType.QNAME.equals(parent.getLastPathArgument().getNodeType())) { YangInstanceIdentifier.NodeIdentifierWithPredicates entityTypeLastPathArgument = (YangInstanceIdentifier.NodeIdentifierWithPredicates) parent.getLastPathArgument(); return (String) entityTypeLastPathArgument.getKeyValues().get(ENTITY_TYPE_QNAME); } parent = parent.getParent(); } return null; }
private void checkIdentifierReferencesData(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) { final PathArgument arg; if (!path.isEmpty()) { arg = path.getLastPathArgument(); checkArgument(arg != null, "Instance identifier %s has invalid null path argument", path); } else { arg = rootNode.getIdentifier(); } checkIdentifierReferencesData(arg, data); }
private EffectiveRibInWriter(final DOMDataTreeChangeService service, final DOMTransactionChain chain, final YangInstanceIdentifier peerIId, final ImportPolicyPeerTracker importPolicyPeerTracker, final RIBSupportContextRegistry registry, final PeerRole peerRole, @Nonnull final PerTableTypeRouteCounter effectiveRouteCounters, @Nonnull final PerTableTypeRouteCounter adjRibInRouteCounters) { importPolicyPeerTracker.peerRoleChanged(peerIId, peerRole); this.importPolicy = importPolicyPeerTracker.policyFor(IdentifierUtils.peerId((NodeIdentifierWithPredicates) peerIId.getLastPathArgument())); this.adjInTracker = new AdjInTracker(service, registry, chain, peerIId, effectiveRouteCounters, adjRibInRouteCounters); }
@Deprecated private EffectiveRibInWriter(final DOMDataTreeChangeService service, final DOMTransactionChain chain, final YangInstanceIdentifier peerIId, final ImportPolicyPeerTracker importPolicyPeerTracker, final RIBSupportContextRegistry registry, final PeerRole peerRole) { importPolicyPeerTracker.peerRoleChanged(peerIId, peerRole); this.importPolicy = importPolicyPeerTracker.policyFor(IdentifierUtils.peerId((NodeIdentifierWithPredicates) peerIId.getLastPathArgument())); this.adjInTracker = new AdjInTracker(service, registry, chain, peerIId); }
private InstanceIdentifier<Node> obtainNodeIdFromEntity(Entity entity) { LOG.debug ("in obtainNodeIdFromEntity for entity {}", entity.getId()); NodeIdentifierWithPredicates node = (NodeIdentifierWithPredicates)entity.getId().getLastPathArgument(); String nodeValue = (String)node.getKeyValues().values().iterator().next(); InstanceIdentifier<Node> nodeId = InstanceIdentifier.builder(Nodes.class) .child(Node.class, new NodeKey(new NodeId(nodeValue))).toInstance(); LOG.debug("nodeid returned for entity {}", nodeId); return nodeId; }
@Override public void ownershipChanged(EntityOwnershipChange ownershipChange) { YangInstanceIdentifier yId = ownershipChange.getEntity().getId(); NodeIdentifierWithPredicates niWPredicates = (NodeIdentifierWithPredicates)yId.getLastPathArgument(); Map<QName, Object> keyValMap = niWPredicates.getKeyValues(); String nodeIdStr = (String)(keyValMap.get(ENTITY_NAME)); NodeId nodeId = new NodeId(nodeIdStr); setNodeOwnership(nodeId, ownershipChange.isOwner()); }