View Javadoc

1   /*
2    * Copyright 2004 Ronald Blaschke.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.rblasch.convert.graph;
17  
18  import java.util.Set;
19  
20  public interface Graph {
21      Set /* of Vertex */ getVertices();
22  
23      Set /* of Edge */ getEdges();
24  
25      /***
26       * Get the set of vertices that can be reached from the given vertex.
27       */
28      Set /* of Vertex */ getOutbound(Vertex vertex);
29  
30      /***
31       * Get the list of vertices that lead to the given vertex.
32       */
33      Set /* of Vertex */ getInbound(Vertex vertex);
34  
35      /***
36       * Ener a new vertex in the graph.
37       * 
38       * @param v vertex
39       */
40      void addVertex(Vertex v);
41  
42      /***
43       * Enter a new segment in the graph.
44       */
45      void addConnection(Vertex start, Edge edge, Vertex end);
46  
47      Set/*<Connection>*/ getAllConnections();
48  
49      Set /* of Connection */ getConnections(Vertex start, Vertex end);
50  }