diff options
author | 2017-11-20 16:02:06 -0500 | |
---|---|---|
committer | 2017-11-20 16:34:16 -0500 | |
commit | 908b4693e5a0a4c2f323dbf518b35e4620f183a1 (patch) | |
tree | cd057c3b4e91f696e116db94d7a3e08c800421a0 /src/main/java/org/onap/crud/dao/GraphDao.java | |
parent | 2dd042556f9142fcd525c0277ea21ac3bd828e4f (diff) |
Refactor to move from openecomp to onap
Refactor to move from openecomp to onap
IssueID: AAI-486
Change-Id: I1d5634739514acf11d5fbdf5e2c7865aaccd864e
Signed-off-by: Bansal, Nitin (nb121v) <nitin.bansal@amdocs.com>
Diffstat (limited to 'src/main/java/org/onap/crud/dao/GraphDao.java')
-rw-r--r-- | src/main/java/org/onap/crud/dao/GraphDao.java | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/src/main/java/org/onap/crud/dao/GraphDao.java b/src/main/java/org/onap/crud/dao/GraphDao.java new file mode 100644 index 0000000..bc42b15 --- /dev/null +++ b/src/main/java/org/onap/crud/dao/GraphDao.java @@ -0,0 +1,183 @@ +/** + * ============LICENSE_START======================================================= + * Gizmo + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.crud.dao; + +import java.util.List; +import java.util.Map; + +import org.onap.crud.entity.Edge; + +import org.onap.crud.entity.Vertex; +import org.onap.crud.exception.CrudException; + +public interface GraphDao { + + public Vertex getVertex(String id) throws CrudException; + + public Vertex getVertex(String id, String type) throws CrudException; + + /** + * Retrieve all of the edges which are incident to the vertex with the + * specified identifier. + * + * @param id + * - The unique identifier of the vertex to retrieve the edges for. + * @return - A collection of edges. + * @throws CrudException + */ + public List<Edge> getVertexEdges(String id) throws CrudException; + + /** + * Retrieve a collection of {@link Vertex} objects which match the supplied + * type label and filter properties. + * + * @param type + * - The vertex type that we want to retrieve. + * @param filter + * - The parameters to filter our results by. + * @return - A collection of vertices. + * @throws CrudException + */ + public List<Vertex> getVertices(String type, Map<String, Object> filter) throws CrudException; + + /** + * Retrieve an {@link Edge} from the graph database by specifying its unique + * identifier. + * + * @param id + * - The unique identifier for the Edge to be retrieved. + * @return - The Edge corresponding to the specified identifier. + * @throws CrudException + */ + public Edge getEdge(String id, String type) throws CrudException; + + /** + * Retrieve a collection of {@link Edge} objects with a given type and which + * match a set of supplied filter parameters. + * + * @param type + * - The type of edges that we are interested in. + * @param filter + * - The parameters that we want to filter our edges by. + * @return - A collection of edges which match the supplied filter parameters. + * @throws CrudException + */ + public List<Edge> getEdges(String type, Map<String, Object> filter) throws CrudException; + + /** + * Insert a new {@link Vertex} into the graph data store. + * + * @param type + * - The type label to assign to the vertex. + * @param properties + * - The properties to associated with this vertex. + * @return - The {@link Vertex} object that was created. + * @throws CrudException + */ + public Vertex addVertex(String type, Map<String, Object> properties) throws CrudException; + + /** + * Updates an existing {@link Vertex}. + * + * @param id + * - The unique identifier of the vertex to be updated. + * @param properties + * - The properties to associate with the vertex. + * @return - The udpated vertex. + * @throws CrudException + */ + public Vertex updateVertex(String id, String type, Map<String, Object> properties) throws CrudException; + + /** + * Removes the specified vertex from the graph data base. + * + * <p> + * NOTE: The vertex MUST contain NO incident edges before it can be deleted. + * + * @param id + * - The unique identifier of the vertex to be deleted. + * @throws CrudException + */ + public void deleteVertex(String id, String type) throws CrudException; + + /** + * Adds an edge to the graph database. + * + * @param type + * - The 'type' label to apply to the edge. + * @param source + * - The source vertex for this edge. + * @param target + * - The target vertex for this edge. + * @param properties + * - The properties map to associate with this edge. + * @return - The {@link Edge} object that was created. + * @throws CrudException + */ + public Edge addEdge(String type, Vertex source, Vertex target, Map<String, Object> properties) throws CrudException; + + /** + * Updates an existing {@link Edge}. + * + * @param id + * - The unique identifier of the edge to be updated. + * @param properties + * - The properties to associate with the edge. + * @return - The update edge. + * @throws CrudException + */ + public Edge updateEdge(Edge edge) throws CrudException; + + /** + * Remove the specified edge from the graph data base. + * + * @param id + * - The unique identifier of the edge to be deleted. + * @throws CrudException + */ + public void deleteEdge(String id, String type) throws CrudException; + + public String openTransaction(); + + public void commitTransaction(String id) throws CrudException; + + public void rollbackTransaction(String id) throws CrudException; + + public boolean transactionExists(String id) throws CrudException; + + public Vertex addVertex(String type, Map<String, Object> properties, String txId) throws CrudException; + + public Edge addEdge(String type, Vertex source, Vertex target, Map<String, Object> properties, String txId) + throws CrudException; + + public Vertex updateVertex(String id, String type, Map<String, Object> properties, String txId) throws CrudException; + + public Edge updateEdge(Edge edge, String txId) throws CrudException; + + public void deleteVertex(String id, String type, String txId) throws CrudException; + + public void deleteEdge(String id, String type, String txId) throws CrudException; + + public Edge getEdge(String id, String type, String txId) throws CrudException; +} |