Enum CSVFormat

java.lang.Object
java.lang.Enum<CSVFormat>
org.jgrapht.nio.csv.CSVFormat
All Implemented Interfaces:
Serializable, Comparable<CSVFormat>, java.lang.constant.Constable

public enum CSVFormat extends Enum<CSVFormat>
Supported CSV formats.
  • Format EDGE_LIST contains one edge per line. The following example

     a,b
     b,c
     
    represents a graph with two edges: a->b and b->c.
  • Format ADJACENCY_LIST contains the adjacency list of each vertex per line. The first field on a line is a vertex while the remaining fields are its neighbors.

     a,b
     b,c,d
     c,a,c,d
     
    represents a graph with edges: a->b, b->c, b->d, c->a, c->c, c->d.

    Mixed variants of EDGE_LIST and ADJACENCY_LIST are also considered valid. As an example consider the following input

     a,b
     b,a
     d,a
     c,a,b
     b,d,a
     
    which represents a graph with edges: a->b, b->a, d->a, c->a, c->b, b->d, b->a. Multiple occurrences of the same edge result into a multi-graph.

    Weighted variants are also valid if CSVFormat.Parameter.EDGE_WEIGHTS is set. In this case the target vertex must be followed by the edge weight. The following example illustrates the weighted variant:

     a,b,2.0
     b,a,3.0
     d,a,2.0
     c,a,1.5,b,2.5
     b,d,3.3,a,5.5
     
  • Format MATRIX outputs an adjacency matrix representation of the graph. Each line represents a vertex. The following

     0,1,0,1,0
     1,0,0,0,0
     0,0,1,0,0
     0,1,0,1,0
     0,0,0,0,0
     
    represents a graph with five vertices 1,2,3,4,5 which contains edges: 1->2, 1->4, 2->1, 3->3, 4->2, 4->4.

    In case CSVFormat.Parameter.MATRIX_FORMAT_ZERO_WHEN_NO_EDGE is not set the equivalent format would be:

     ,1,,1,
     1,,,,
     ,,1,,
     ,1,,1,
     ,,,,
     

    Weighted variants are also valid if CSVFormat.Parameter.EDGE_WEIGHTS is set. The above example would then be:

     ,1.0,,1.0,
     1.0,,,,
     ,,1.0,,
     ,1.0,,1.0,
     ,,,,
     
    If additionally CSVFormat.Parameter.MATRIX_FORMAT_ZERO_WHEN_NO_EDGE is set then a zero as an integer means that the corresponding edge is missing, while a zero as a double means than the edge exists and has zero weight.

    If parameter CSVFormat.Parameter.MATRIX_FORMAT_NODEID is set then node identifiers are also included as in the following example:

     ,a,b,c,d,e
     a,,1,,1,
     b,1,,,,
     c,,,1,,
     d,,1,,1,
     e,,,,,
     
    In the above example the first line contains the node identifiers and the first field of each line contain the vertex it corresponds to. In case node identifiers are present line-shuffled input is also valid such as:
     ,a,b,c,d,e
     c,,,1,,
     b,1,,,,
     e,,,,,
     d,,1,,1,
     a,,1,,1,
     
    The last example represents the graph with edges: a->b, a->d, b->a, c->c, d->b, d->d.
Author:
Dimitrios Michail
  • Enum Constant Details

    • EDGE_LIST

      public static final CSVFormat EDGE_LIST
      Edge list
    • ADJACENCY_LIST

      public static final CSVFormat ADJACENCY_LIST
      Adjacency list
    • MATRIX

      public static final CSVFormat MATRIX
      Matrix
  • Method Details

    • values

      public static CSVFormat[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static CSVFormat valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null