2 * Copyright (c) 2019 Orange. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.graph;
10 import java.util.List;
11 import org.eclipse.jdt.annotation.NonNull;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.Edge;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.Prefix;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.graph.Vertex;
17 * Connected Vertex class is the connected version of the Vertex class from the graph yang model.
20 * It is composed of a reference to the associated Vertex class from the Graph class,
21 * a unique Key identifier in the associated Connected Graph,
22 * and two lists to the associated Connected Edges in the connected Graph: input and output.
27 * ---->| Vertex |---->
28 * Input Connected Edges { ... | - Key | ... } Output Connected Edges
29 * ---->| - Vertex |---->
34 * @author Olivier Dugeon
35 * @author Philippe Niger
38 public interface ConnectedVertex {
41 * Returns unique key associated to this Connected Vertex.
45 @NonNull Long getKey();
48 * Returns Vertex associated to this Connected Vertex.
50 * @return vertex Vertex
52 @NonNull Vertex getVertex();
55 * Returns Connected Edges that has for destination the Connected Vertex identified by its key.
57 * @param destinationKey Unique Key that identify the destination Vertex
59 * @return List of Connected Edge
61 List<ConnectedEdge> getEdgeTo(Long destinationKey);
64 * Returns the list of incoming Edge for this Connected Vertex.
66 * @return List of Edge
68 List<Edge> getInputEdges();
71 * Returns the list of incoming Connected Edge for this Connected Vertex.
73 * @return List of Connected Edge
75 List<ConnectedEdge> getInputConnectedEdges();
78 * Returns the list of outgoing Edge for this Connected Vertex.
80 * @return List of Edge
82 List<Edge> getOutputEdges();
85 * Returns the list of outgoing Connected Edge for this Connected Vertex.
87 * @return List of Connected Edge
89 List<ConnectedEdge> getOutputConnectedEdges();
92 * Return the list of prefix announced by this Connected Vertex. Prefix contains the associated SID when
93 * Segment Routing is enable.
95 * @return List of Prefix
97 List<Prefix> getPrefixes();