neo4j/neo4j — pull request #2800 by jakewins (2014-08-05 16:06:02+00:00)
Title: Introduce #traverse() in the Kernel API

Add a first traverse primitive to the kernel api, which uses the
cursor/register spec to define its signature. This first primitive is capable
of traversing a single hop from one source node, and filters by reltype and
direction.

This commit contains:

- A revised Cursor, no longer inheriting from IOCursor as the two perform
different jobs.
- Register implementations needed for this first traverse primitive.
- A complete "augment" cursor that can overlay local tx state on top of another
traverse cursor.
- A temporary implementation of a store traverse cursor which simply piggybacks
on existing listRels and visitRel mechanisms in the cache layer.

Next steps:

- Refactor the store format into stand-alone classes, separate from the stores
- Implement a store traverse cursor that uses those format classes directly,
bypassing the cache.