View Javadoc
1   package org.thegalactic.dgraph;
2   
3   /*
4    * DGraph.java
5    *
6    * Copyright: 2016 The Galactic Organization, France
7    *
8    * License: http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html CeCILL-B license
9    *
10   * This file is part of java-lattices.
11   * You can redistribute it and/or modify it under the terms of the CeCILL-B license.
12   */
13  import java.io.IOException;
14  import java.util.SortedSet;
15  
16  /**
17   * DGraph.
18   *
19   * @param <N> Node content type
20   * @param <E> Edge content type
21   *
22   * @todo Do use N insteand of Node and E instead of Edge by defining DGraph<N extends Comparable<N>, E>
23   */
24  public interface DGraph<N, E> {
25  
26      /**
27       * Returns the set of nodes of this component.
28       *
29       * @return the set of nodes
30       */
31      SortedSet<Node<N>> getNodes();
32  
33      /**
34       * Returns the set of edges of this component.
35       *
36       * @return the set of edges
37       */
38      SortedSet<Edge<N, E>> getEdges();
39  
40      /**
41       * Returns the set of edges predecessors of the specified node.
42       *
43       * @param node the node to search for
44       *
45       * @return the set of edges
46       */
47      SortedSet<Edge<N, E>> getPredecessorEdges(final Node<N> node);
48  
49      /**
50       * Returns the set of edges successors of the specified node.
51       *
52       * @param node the node to search for
53       *
54       * @return the set of edges
55       */
56      SortedSet<Edge<N, E>> getSuccessorEdges(final Node<N> node);
57  
58      /**
59       * Returns the set of nodes predecessors of the specified node.
60       *
61       * @param node the node to search for
62       *
63       * @return the set of nodes
64       */
65      SortedSet<Node<N>> getPredecessorNodes(final Node<N> node);
66  
67      /**
68       * Returns the set of nodes successors of the specified node.
69       *
70       * @param node the node to search for
71       *
72       * @return the set of nodes
73       */
74      SortedSet<Node<N>> getSuccessorNodes(final Node<N> node);
75  
76      /**
77       * Returns the sinks of this component.
78       *
79       * @return the sinks
80       */
81      SortedSet<Node<N>> getSinks();
82  
83      /**
84       * Returns the wells of this component.
85       *
86       * @return the wells
87       */
88      SortedSet<Node<N>> getWells();
89  
90      /**
91       * Returns the number of edges of this component.
92       *
93       * @return the number of edges
94       */
95      int sizeEdges();
96  
97      /**
98       * Returns the number of nodes of this component.
99       *
100      * @return the number of nodes
101      */
102     int sizeNodes();
103 
104     /**
105      * Save the description of this component in a file whose name is specified.
106      *
107      * @param filename the name of the file
108      *
109      * @throws IOException When an IOException occurs
110      */
111     void save(final String filename) throws IOException;
112 
113     /**
114      * Returns a String representation of this component.
115      *
116      * @return the string representation
117      */
118     @Override
119     String toString();
120 }