com.tietoenator.trip.jxp.graph

## Class TdbGraphSet

- java.lang.Object
- - com.tietoenator.trip.jxp.graph.TdbGraphSet

- Direct Known Subclasses:
    TdbSubGraph

      public abstract class TdbGraphSet
      extends java.lang.Object

  Represents a graph database, a graph cluster or a subgraph based on a graph query.

  THIS CLASS IS EXPERIMENTAL. USE WITH CAUTION! ITS INTERFACE MAY CHANGE IN FUTURE RELEASES.

  Since:
    TRIPjxp 3.1

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `TdbGraphSet` | `backtrack(java.lang.String edge, int sourceSet)` Creates a subgraph by following a particular edge type backwards from target vertex in the current graph set to source vertex in the specified source set.
    `TdbGraphPath[]` | `findPaths(int startSet, java.lang.String[] edgeNames, int targetSet, int maxDepth, boolean reverse)` Locate all paths associated with the current graph set that use vertices in the specified start set as origins.
    `TdbGraphSet` | `follow(java.lang.String edge, int targetSet)` Creates a subgraph by locating targets for the source vertices in the current graph set such that they are related via a particular edge (a.k.a.
    `int` | `getEdgeCount()` Returns the count of edges in this graph set.
    `TdbGraph` | `getGraph()` Returns the TdbGraph instance that this graph set is associated with.
    `TdbGraphRecord` | `getRecord(int index)` Returns a TdbGraphRecord object for a record in the the current graph set.
    `int` | `getSearchId()` Returns the TRIP search set ID for this graph set.
    `TdbGraphSet` | `merge(TdbGraphSet otherSet)` Merge this graph set with another, producing the union of both sets.
    `TdbGraphQueryResult` | `query(java.lang.String expression)` Execute a query using the TRIP graph query language.
    `TdbSearchSet` | `resolveSources()` Resolve target vertices to a search set of the regular records they represent.
    `TdbSearchSet` | `resolveTargets()` Resolve target vertices to a search set of the regular records they represent.
    `TdbGraphPath` | `shortestPath(int startSet, java.lang.String[] edgeNames, int targetSet)` Determine the shortest path associated with the current graph set that use vertices in the specified start set as origins.
    `TdbGraphSet` | `source(int searchSet)` Create a subgraph with edges where source vertices can be found in the specified (regular) search set.
    `TdbGraphSet` | `target(int searchSet)` Create a subgraph with edges where target vertices can be found in the specified (regular) search set.
    `TdbGraphSet` | `transitive(int sourceSet, int targetSet, java.lang.String[] edgeNames, int maxDepth, boolean reverse, boolean allEdges)` Creates a subgraph of the current graph set where the specified source and target records are connected via path.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getGraph

          public TdbGraph getGraph()

      Returns the TdbGraph instance that this graph set is associated with.

    - #### getSearchId

          public int getSearchId()

      Returns the TRIP search set ID for this graph set.

    - #### getEdgeCount

          public int getEdgeCount()

      Returns the count of edges in this graph set.
      Returns:
        Edge count

    - #### getRecord

          public TdbGraphRecord getRecord(int index)
                                   throws TdbException

      Returns a TdbGraphRecord object for a record in the the current graph set.
      Parameters:
        `index` - The zero-based index of the record in the set.
      Returns:
        A TdbGraphRecord instance
      Throws:
        `TdbException`

    - #### source

          public TdbGraphSet source(int searchSet)
                             throws TdbException

      Create a subgraph with edges where source vertices can be found in the specified (regular) search set.
      Parameters:
        `searchSet` - Normal search set to find outgoing edges for.
      Returns:
        A TdbGraphSet instance for the resulting subgraph
      Throws:
        `TdbException`

    - #### target

          public TdbGraphSet target(int searchSet)
                             throws TdbException

      Create a subgraph with edges where target vertices can be found in the specified (regular) search set.
      Parameters:
        `searchSet` - Normal search set to find incoming edges for.
      Returns:
        A TdbGraphSet instance for the resulting subgraph
      Throws:
        `TdbException`

    - #### follow

          public TdbGraphSet follow(java.lang.String edge,
                                    int targetSet)
                             throws TdbException

      Creates a subgraph by locating targets for the source vertices in the current graph set such that they are related via a particular edge (a.k.a. relation, link).
      Parameters:
        `edge` - Name of edge (a.k.a. relation, link) to follow
        `targetSet` - Positive search set number (from regular database)
      Returns:
        A TdbGraphSet instance for the resulting subgraph
      Throws:
        `TdbException`

    - #### backtrack

          public TdbGraphSet backtrack(java.lang.String edge,
                                       int sourceSet)
                                throws TdbException

      Creates a subgraph by following a particular edge type backwards from target vertex in the current graph set to source vertex in the specified source set.
      Parameters:
        `edge` - Name of edge (a.k.a. relation, link) to follow backwards
        `sourceSet` - Positive search set number (from regular database)
      Returns:
        A TdbGraphSet instance for the resulting subgraphs
      Throws:
        `TdbException`

    - #### resolveTargets

          public TdbSearchSet resolveTargets()
                                      throws TdbException

      Resolve target vertices to a search set of the regular records they represent.
      Returns:
        A TRIP search set with the records targeted by the edges in the current graph set.
      Throws:
        `TdbException`

    - #### resolveSources

          public TdbSearchSet resolveSources()
                                      throws TdbException

      Resolve target vertices to a search set of the regular records they represent.
      Returns:
        A TRIP search set with the records being targets for the edges in the current graph set.
      Throws:
        `TdbException`

    - #### transitive

          public TdbGraphSet transitive(int sourceSet,
                                        int targetSet,
                                        java.lang.String[] edgeNames,
                                        int maxDepth,
                                        boolean reverse,
                                        boolean allEdges)
                                 throws TdbException

      Creates a subgraph of the current graph set where the specified source and target records are connected via path.
      Parameters:
        `sourceSet` - The positive number for a regular search set that specifies the source vertices (must not be zero).
        `targetSet` - The positive number for a regular search set that specifies the target vertices (or zero to locate all potential targets)
        `edgeNames` - An array of names of the edge types to traverse - pass null or an empty array to traverse all edge types.
        `maxDepth` - The maximum depth to search - pass zero for no depth limit
        `reverse` - Pass true to do transitive search by following edges in reverse direction.
        `allEdges` - Pass true to retrieve all edges explored by the operation, and false to only retrieve the final, outer edges.
      Returns:
        A TdbGraphSet object
      Throws:
        `TdbException`

    - #### query

          public TdbGraphQueryResult query(java.lang.String expression)
                                    throws TdbException

      Execute a query using the TRIP graph query language.
      Parameters:
        `expression` - Query expression in TRIP graph query language syntax.
      Returns:
        An instance of TdbGraphSet if the query results in an edge set, or an instance of TdbSearchSet if the query results in an edge set.
      Throws:
        `TdbException`

    - #### findPaths

          public TdbGraphPath[] findPaths(int startSet,
                                          java.lang.String[] edgeNames,
                                          int targetSet,
                                          int maxDepth,
                                          boolean reverse)
                                   throws TdbException

      Locate all paths associated with the current graph set that use vertices in the specified start set as origins. This is a so-called "NP hard" problem, and as such this operation may take a long time to complete for large graphs.
      Parameters:
        `startSet` - Regular search set specifying the vertex record(s) to use as starting point(s) for the paths.
        `edgeNames` - Names of edges to follow or pass null or an empty array to follow all edges.
        `targetSet` - Regular search set specifying the vertex record(s) to use as end point(s) for the paths.
        `maxDepth` - The maximum traversal depth or pass zero for no limit.
        `reverse` - Pass true to explore paths in reverse direction.
      Returns:
        An array of graph paths
      Throws:
        `TdbException`

    - #### shortestPath

          public TdbGraphPath shortestPath(int startSet,
                                           java.lang.String[] edgeNames,
                                           int targetSet)
                                    throws TdbException

      Determine the shortest path associated with the current graph set that use vertices in the specified start set as origins. This is a so-called "NP hard" problem, and as such this operation may take a long time to complete for large graphs.
      Parameters:
        `startSet` - Regular search set specifying the vertex record(s) to use as starting point for the paths.
        `edgeNames` - Names of edges to follow or pass null or an empty array to follow all edges.
        `targetSet` - Regular search set specifying the vertex record(s) to use as end points for the paths.
      Returns:
        The shortest path found in the graph between the target and the source, or null if no path was found.
      Throws:
        `TdbException`

    - #### merge

          public TdbGraphSet merge(TdbGraphSet otherSet)
                            throws TdbException

      Merge this graph set with another, producing the union of both sets.
      Parameters:
        `otherSet` - Other graph set to merge with.
      Returns:
        Merged graph set
      Throws:
        `TdbException`