neighborhood

open fun neighborhood(entityId: String, depth: Int = 1): GraphNeighborhood

The entity neighbourhood reachable from entityId within depth hops.

Return

the neighbourhood; an empty neighbourhood by default

Parameters

entityId

the opaque entity identifier to centre the neighbourhood on

depth

maximum hop distance (1 = directly connected entities)


open fun neighborhood(entityId: String, depth: Int, contextId: <Error class: unknown class>?): GraphNeighborhood

The entity neighbourhood reachable from entityId, confined to contextId (a null context is unscoped — exactly the plain neighborhood overload).

The facade routes a context-bound query here only when honorsContextFilter is true; the default body delegates to the unscoped overload, so a backend that hasn't opted in never sees a non-null context here (a check guards that invariant). A null context always delegates.

Parameters

contextId

the context to confine the walk to; null keeps it unscoped


open fun neighborhood(entityId: String, depth: Int, contextId: <Error class: unknown class>?, maxDepth: Int): GraphNeighborhood

Same as the context-scoped overload above, but also carries the caller's own depth ceiling (maxDepth) so a backend that enforces its own hard cap on the walk can clamp against the caller's ceiling instead of a value it hardcodes itself. The facade always calls this overload (passing its own configured maxDepth) rather than the three-arg one, so a store that only overrides the three-arg overload keeps working unchanged — it just never sees the caller's ceiling and falls back to whatever bound it enforces on its own.

Parameters

maxDepth

the caller's own depth ceiling; a backend combines this with its own hard cap (e.g. min(maxDepth, ownHardCap)) rather than trusting it blindly


open fun neighborhood(entityId: String, depth: Int, minAuthority: AuthorityTier?): GraphNeighborhood

The entity neighbourhood reachable from entityId, keeping only edges whose source authority is at least minAuthority (a null floor keeps everything).

The facade only calls this when honorsAuthorityFilter is true. A backend that opts in by setting that flag MUST override this overload — the default body throws rather than silently returning unfiltered results, which would let a backend claim to honor the floor and then drop it on the floor.

Parameters

minAuthority

weakest source authority to keep; null keeps all edges


open fun neighborhood(entityId: String, depth: Int, minAuthority: AuthorityTier?, maxDepth: Int): GraphNeighborhood

Same as the authority-aware overload above, but also carries the caller's own depth ceiling (maxDepth), for the same reason as the context-aware maxDepth-carrying overload.