haskell-neo4j-client-0.3.2.4: A Haskell neo4j client

Safe HaskellNone
LanguageHaskell98

Database.Neo4j.Traversal

Contents

Description

Module to manage traversal operations

Synopsis

Types for configuring the traversal

data Uniqueness Source #

Different types of uniqueness calculations for a traversal

Additional types for configuring a paged traversal

Types used when returning paths

data Path a b Source #

Data type to describe a path in a graph, that is a single node or nodes interleaved with relationships

Constructors

PathEnd !a 
PathLink !a !b !(Path a b) 

Instances

FromJSON FullPath Source #

How to decodify an IdPath from JSON

FromJSON IdPath Source #

How to decodify an IdPath from JSON

(Eq a, Eq b) => Eq (Path a b) Source # 

Methods

(==) :: Path a b -> Path a b -> Bool #

(/=) :: Path a b -> Path a b -> Bool #

(Ord a, Ord b) => Ord (Path a b) Source # 

Methods

compare :: Path a b -> Path a b -> Ordering #

(<) :: Path a b -> Path a b -> Bool #

(<=) :: Path a b -> Path a b -> Bool #

(>) :: Path a b -> Path a b -> Bool #

(>=) :: Path a b -> Path a b -> Bool #

max :: Path a b -> Path a b -> Path a b #

min :: Path a b -> Path a b -> Path a b #

(Show a, Show b) => Show (Path a b) Source # 

Methods

showsPrec :: Int -> Path a b -> ShowS #

show :: Path a b -> String #

showList :: [Path a b] -> ShowS #

type IdPath = Path NodePath (RelPath, ConcreteDirection) Source #

Path that its data are id's

type FullPath = Path Node Relationship Source #

Path that its data are full nodes and relationships, not only their id's

Types used when returning paged results

data PagedTraversal a Source #

Data type that holds a result for a paged traversal with the URI to get the rest of the pages

pathNodes :: Path a b -> [a] Source #

Get all the nodes of a path

pathRels :: Path a b -> [b] Source #

Get all the relationships of a path

Traversal operations

traverseGetNodes :: NodeIdentifier a => TraversalDesc -> a -> Neo4j [Node] Source #

Perform a traversal and get the resulting nodes

traverseGetRels :: NodeIdentifier a => TraversalDesc -> a -> Neo4j [Relationship] Source #

Perform a traversal and get the resulting relationship entities

traverseGetPath :: NodeIdentifier a => TraversalDesc -> a -> Neo4j [IdPath] Source #

Perform a traversal and get the resulting node and relationship paths IMPORTANT! In pre 2.2 Neo4j versions the directions in each relationship ID returned have a default value (The API does not provide them)

traverseGetFullPath :: NodeIdentifier a => TraversalDesc -> a -> Neo4j [FullPath] Source #

Perform a traversal and get the resulting node and relationship entities

Paged traversal operations

pagedTraverseGetNodes :: NodeIdentifier a => TraversalDesc -> TraversalPaging -> a -> Neo4j (PagedTraversal Node) Source #

Perform a paged traversal and get the resulting nodes

pagedTraverseGetRels :: NodeIdentifier a => TraversalDesc -> TraversalPaging -> a -> Neo4j (PagedTraversal Relationship) Source #

Perform a paged traversal and get the resulting relationships

pagedTraverseGetPath :: NodeIdentifier a => TraversalDesc -> TraversalPaging -> a -> Neo4j (PagedTraversal IdPath) Source #

Perform a paged traversal and get the resulting id paths, IMPORTANT! In pre 2.2 Neo4j versions the directions in each relationship ID returned have a default value (The API does not provide them)

pagedTraverseGetFullPath :: NodeIdentifier a => TraversalDesc -> TraversalPaging -> a -> Neo4j (PagedTraversal FullPath) Source #

Perform a paged traversal and get the resulting paths with full entities

Operations to handle paged results

getPagedValues :: PagedTraversal a -> [a] Source #

Get the values of a paged traversal result

nextTraversalPage :: FromJSON a => PagedTraversal a -> Neo4j (PagedTraversal a) Source #

Get the next page of values from a traversal result

pagedTraversalDone :: PagedTraversal a -> Bool Source #

Whether a paged traversal is done