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
9 package org.opendaylight.graph;
11 import java.util.List;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.Graph;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.Graph.DomainScope;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev191125.graph.topology.GraphKey;
17 * Connected Graph Provider is a new service provided by the Graph feature to manage the Connected Graph.
20 * It allows to get, create, add and delete Connected Graph. All associated Graph are automatically
21 * stored in the DataStore.
23 * @author Olivier Dugeon
24 * @author Philippe Niger
28 public interface ConnectedGraphProvider {
31 * Returns Graph for the given graph name.
33 * @param name Name of the Graph
37 Graph getGraph(String name);
40 * Returns the Graph for the given graph key.
42 * @param key Unique Graph Identifier
46 Graph getGraph(GraphKey key);
49 * Returns Connected Graph for the given graph name.
51 * @param name Name of the Graph
53 * @return Connected Graph
55 ConnectedGraph getConnectedGraph(String name);
58 * Returns Connected Graph for the given graph key.
60 * @param key Unique Graph Identifier
62 * @return Connected Graph
64 ConnectedGraph getConnectedGraph(GraphKey key);
67 * Returns all registered Connected Graphs.
69 * @return List of Connected Graph
71 List<ConnectedGraph> getConnectedGraphs();
74 * Create Connected Graph and associated Graph for given name and Graph Type. The associated Graph is also stored
77 * @param name Name of the Graph
78 * @param scope Domain scope of the Graph (Intra or Inter domain)
80 * @return Connected Graph
82 ConnectedGraph createConnectedGraph(String name, DomainScope scope);
85 * Add a Graph. This action will automatically create the associated Connected Graph and store is in the DataStore.
87 * @param graph Graph to be added
89 * @return Connected Graph
91 ConnectedGraph addGraph(Graph graph);
94 * Remove a Graph. This action will automatically delete the associated Connected Graph and store is in the
97 * @param key Graph Identifier
100 void deleteGraph(GraphKey key);