All Known Subinterfaces:`Path.Impl`

* * *

public interface Path

A Path defines how to navigate to target values in a data structure as a series of steps.
Paths are the core construct for querying and updating PStates. The Path API uses the
builder pattern to specify a series of navigation steps.

Example: `Path.key("a").nth(2)` navigates first to the value for the key `"a"`
in a map, then to the value at the index `2` in a list.

Parameters with "arg" in the name can be a var, value, or [`Expr`](/content/javadoc/com/rpl/rama/Expr.html "class in com.rpl.rama"/index.html).

Pseudocode examples in the Javadoc for each method on this class use JSON-like syntax for
data structures. `select` in these examples produces a list of navigated values, so if
an example `select` navigates to one value the result will be a list of one element.

Transform paths determine what diffs [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) on those PStates will see.
Each navigator's Javadoc specifies what diffs they produce.

See Also:

- [Paths documentation](/content/docs/~/paths.html)
- [PStates documentation](/content/docs/~/pstates.html)
- [Reactivity documentation](/content/docs/~/pstates.html#_reactive_queries/index.html)

- ## Nested Class Summary

Nested Classes

Modifier and Type

Interface

Description

`static interface`

`Path.Impl`

- ## Method Summary

Static Methods

Modifier and Type

Method

Description

`static Path.Impl`

`afterElem()`

Navigates on a list to void element at end.

`static Path.Impl`

`all()`

Navigates to every element of a collection.

`static Path.Impl`

`beforeElem()`

Navigates on a list to void element at beginning.

`static Path.Impl`

`beforeIndex(Object argIndex)`

Navigates on list to void element before an index.

`static Path.Impl`

`beginning()`

Navigates on a list to empty subsequence at beginning.

`static Path.Impl`

`collect(Path path)`

Collects a list of values selected with given path from current point.

`static Path.Impl`

`collectOne(Path path)`

Collects a single value selected with given path from current point.

`static Path.Impl`

`create()`

Creates an empty Path.

`static Path.Impl`

`customNav(Navigator nav)`

Adds custom navigator implementation to Path

`static Path.Impl`

`customNavBuilder(RamaFunction0<Navigator> builderFunction)`

Adds a custom navigator built dynamically with the provided function of zero arguments.

`static <T0> Path.Impl`

`customNavBuilder(RamaFunction1<T0,Navigator> builderFunction,
Object arg0)`

Adds a custom navigator built dynamically with the provided function of one argument.

`static <T0,
T1> Path.Impl`

`customNavBuilder(RamaFunction2<T0,T1,Navigator> builderFunction,
Object arg0,
Object arg1)`

Adds a custom navigator built dynamically with the provided function of two arguments.

`static <T0,
T1,
T2>
Path.Impl`

`customNavBuilder(RamaFunction3<T0,T1,T2,Navigator> builderFunction,
Object arg0,
Object arg1,
Object arg2)`

Adds a custom navigator built dynamically with the provided function of three arguments.

`static <T0,
T1,
T2,
T3>
Path.Impl`

`customNavBuilder(RamaFunction4<T0,T1,T2,T3,Navigator> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3)`

Adds a custom navigator built dynamically with the provided function of four arguments.

`static <T0,
T1,
T2,
T3,
T4>
Path.Impl`

`customNavBuilder(RamaFunction5<T0,T1,T2,T3,T4,Navigator> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Adds a custom navigator built dynamically with the provided function of five arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5>
Path.Impl`

`customNavBuilder(RamaFunction6<T0,T1,T2,T3,T4,T5,Navigator> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Adds a custom navigator built dynamically with the provided function of six arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6>
Path.Impl`

`customNavBuilder(RamaFunction7<T0,T1,T2,T3,T4,T5,T6,Navigator> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Adds a custom navigator built dynamically with the provided function of seven arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7>
Path.Impl`

`customNavBuilder(RamaFunction8<T0,T1,T2,T3,T4,T5,T6,T7,Navigator> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6,
Object arg7)`

Adds a custom navigator built dynamically with the provided function of eight arguments.

`static Path.Impl`

`dispenseCollected()`

Drops all collected values from subsequent navigation

`static Path.Impl`

`end()`

Navigates on a list to empty subsequence at end.

`static Path.Impl`

`filteredList(Path path)`

Navigates to sublist of elements filtered based on given Path.

`static Path.Impl`

`filterEqual(Object argVal)`

Continues navigation if current value is equal to provided value.

`static Path.Impl`

`filterGreaterThan(Object argVal)`

Continues navigation if current value is greater than provided value.

`static Path.Impl`

`filterGreaterThanOrEqual(Object argVal)`

Continues navigation if current value is greater than or equal to provided value.

`static Path.Impl`

`filterLessThan(Object argVal)`

Continues navigation if current value is less than provided value.

`static Path.Impl`

`filterLessThanOrEqual(Object argVal)`

Continues navigation if current value is less than or equal to provided value.

`static Path.Impl`

`filterNotEqual(Object argVal)`

Continues navigation if current value is not equal to provided value.

`static Path.Impl`

`filterNotSelected(Path path)`

Continues navigation if provided path executed on current value navigates to zero values.

`static <T0,
R0> Path.Impl`

`filterPred(RamaFunction1<T0,R0> pred)`

Continues navigation if provided function returns true on current value.

`static Path.Impl`

`filterSelected(Path path)`

Continues navigation if provided path executed on current value navigates to at least one value.

`static Path.Impl`

`first()`

Navigates on list to first element if not empty.

`static Path.Impl`

`ifPath(Path conditionPath,
Path thenPath)`

Tests condition against current point and continues navigating with `thenPath` if
condition passes.

`static Path.Impl`

`ifPath(Path conditionPath,
Path thenPath,
Path elsePath)`

Tests condition against current point and continues navigating with `thenPath` if
condition passes.

`static Path.Impl`

`index(Object argIndex)`

Navigates to the index of a list if it exists.

`static Path.Impl`

`indexedVals()`

Navigates to pairs of `[index, value]` for every element of list.

`static <T0,
R0> Path.Impl`

`isCollected(RamaFunction1<T0,R0> predicate)`

Stops navigation if given function on collected values returns false.

`static Path.Impl`

`key(Object... argKeys)`

Navigates to value for a key in a map.

`static Path.Impl`

`last()`

Navigates on list to last element if not empty.

`static Path.Impl`

`mapKey(Object argKey)`

Navigates to a key in a map if it exists.

`static Path.Impl`

`mapKeys()`

Navigates to every key of a map.

`static Path.Impl`

`mapVals()`

Navigates to every value of a map.

`static Path.Impl`

`multiPath(Path... paths)`

Navigates to each provided path in order, all starting from this point.

`static Path.Impl`

`must(Object... argKeys)`

Navigates to value for a key in a map only if key exists.

`static Path.Impl`

`nth(Object argIndex)`

Navigates to value for index in a list.

`static Path.Impl`

`nullToList()`

Navigates to empty list if currently navigated to null.

`static Path.Impl`

`nullToSet()`

Navigates to empty set if currently navigated to null.

`static Path.Impl`

`nullToVal(Object argVal)`

Navigates to given value if currently navigated to null.

`static Path.Impl`

`pathBuilder(RamaFunction0<Path> builderFunction)`

Concatenates a path to the current path constructed with the provided function of zero arguments.

`static <T0> Path.Impl`

`pathBuilder(RamaFunction1<T0,Path> builderFunction,
Object arg0)`

Concatenates a path to the current path constructed with the provided function of one argument.

`static <T0,
T1> Path.Impl`

`pathBuilder(RamaFunction2<T0,T1,Path> builderFunction,
Object arg0,
Object arg1)`

Concatenates a path to the current path constructed with the provided function of two arguments.

`static <T0,
T1,
T2>
Path.Impl`

`pathBuilder(RamaFunction3<T0,T1,T2,Path> builderFunction,
Object arg0,
Object arg1,
Object arg2)`

Concatenates a path to the current path constructed with the provided function of three arguments.

`static <T0,
T1,
T2,
T3>
Path.Impl`

`pathBuilder(RamaFunction4<T0,T1,T2,T3,Path> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3)`

Concatenates a path to the current path constructed with the provided function of four arguments.

`static <T0,
T1,
T2,
T3,
T4>
Path.Impl`

`pathBuilder(RamaFunction5<T0,T1,T2,T3,T4,Path> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Concatenates a path to the current path constructed with the provided function of five arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5>
Path.Impl`

`pathBuilder(RamaFunction6<T0,T1,T2,T3,T4,T5,Path> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Concatenates a path to the current path constructed with the provided function of six arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6>
Path.Impl`

`pathBuilder(RamaFunction7<T0,T1,T2,T3,T4,T5,T6,Path> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Concatenates a path to the current path constructed with the provided function of seven arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7>
Path.Impl`

`pathBuilder(RamaFunction8<T0,T1,T2,T3,T4,T5,T6,T7,Path> builderFunction,
Object arg0,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6,
Object arg7)`

Concatenates a path to the current path constructed with the provided function of eight arguments.

`static Path.Impl`

`putCollected(Object argVal)`

Adds given value to collected values.

`static Path.Impl`

`setElem(Object argVal)`

Navigates to element of set if it exists.

`static Path.Impl`

`sortedMapRange(Object argKeyStart,
Object argKeyEnd)`

Navigates on a sorted map to a sorted map of all elements in that map between a range of keys.

`static Path.Impl`

`sortedMapRange(Object argKeyStart,
Object argKeyEnd,
Object argOptions)`

Navigates on a sorted map to a sorted map of all elements in that map between a range of keys, with options to change inclusive/exclusive status of start and end keys.

`static Path.Impl`

`sortedMapRangeFrom(Object argKeyStart)`

Navigates on a sorted map to a sorted map of all elements in that map after a key.

`static Path.Impl`

`sortedMapRangeFrom(Object argKeyStart,
Object argAmtOrOptions)`

Navigates on a sorted map to a sorted map starting from a specified key, with options to read a fixed number of elements or configure whether start key is inclusive or exclusive.

`static Path.Impl`

`sortedMapRangeFromStart(Object argMaxAmt)`

Navigates on a sorted map to a sorted map of all elements in that map from the start up to the provided max amount.

`static Path.Impl`

`sortedMapRangeTo(Object argKeyTo)`

Navigates on a sorted map to a sorted map of all values in that map up to a key.

`static Path.Impl`

`sortedMapRangeTo(Object argKeyTo,
Object argAmtOrOptions)`

Navigates on a sorted map to a sorted map up to a specified key, with options to read a fixed number of elements or configure whether end key is inclusive or exclusive.

`static Path.Impl`

`sortedMapRangeToEnd(Object argMaxAmt)`

Navigates on a sorted map to a sorted map of all elements in that map from the end up to the provided max amount.

`static Path.Impl`

`sortedSetRange(Object argElemStart,
Object argElemEnd)`

Navigates on a sorted set to a sorted set of all values in that set between a range.

`static Path.Impl`

`sortedSetRange(Object argElemStart,
Object argElemEnd,
Object argOptions)`

Navigates on a sorted set to a sorted set of all values in that set between a range, with options to change inclusive/exclusive status of start and end elements.

`static Path.Impl`

`sortedSetRangeFrom(Object argElemStart)`

Navigates on a sorted set to a sorted set of all values in that set after an element.

`static Path.Impl`

`sortedSetRangeFrom(Object argElemStart,
Object argAmtOrOptions)`

Navigates on a sorted set to a sorted set starting from a specified element, with options to read a fixed number of elements or configure whether start element is inclusive or exclusive.

`static Path.Impl`

`sortedSetRangeFromStart(Object argMaxAmt)`

Navigates on a sorted set to a sorted set of all values in that set after the start up to the provided max amount.

`static Path.Impl`

`sortedSetRangeTo(Object argElemTo)`

Navigates on a sorted set to a sorted set of all values in that set up to an element.

`static Path.Impl`

`sortedSetRangeTo(Object argElemTo,
Object argAmtOrOptions)`

Navigates on a sorted set to a sorted set up to a specified element, with options to read a fixed number of elements or configure whether end element is inclusive or exclusive.

`static Path.Impl`

`sortedSetRangeToEnd(Object argMaxAmt)`

Navigates on a sorted set to a sorted set of all values in that set from the end, up to the provided max amount.

`static Path.Impl`

`stay()`

No-op that stays navigated at current point.

`static Path.Impl`

`stop()`

Stops current branch of navigation.

`static Path.Impl`

`sublist(Object argStartIndex,
Object argEndIndex)`

Navigates to sublist bounded by two indexes.

`static <T0,
R0,
T1,
T2,
R1>
Path.Impl`

`sublistDynamic(RamaFunction1<T0,R0> startFunction,
RamaFunction2<T1,T2,R1> endFunction)`

Navigates to sublist bounded by indexes chosen by functions.

`static Path.Impl`

`subMap(Object... argKeys)`

Navigates to a map containing subset of keys/values of starting map.

`static Path.Impl`

`subselect(Path path)`

Navigates to list of values navigated by provided path.

`static Path.Impl`

`subset(Object... argVals)`

Navigates to subset of starting set with given elements.

`static <T0,
R0> Path.Impl`

`term(RamaFunction1<T0,R0> termFunction)`

Terminal point of a transform path that updates navigated value with the provided function
of one argument.

`static <T0,
T1,
R0>
Path.Impl`

`term(RamaFunction2<T0,T1,R0> termFunction,
Object arg1)`

Terminal point of a transform path that updates navigated value with the provided function of two arguments.

`static <T0,
T1,
T2,
R0>
Path.Impl`

`term(RamaFunction3<T0,T1,T2,R0> termFunction,
Object arg1,
Object arg2)`

Terminal point of a transform path that updates navigated value with the provided function of three arguments.

`static <T0,
T1,
T2,
T3,
R0>
Path.Impl`

`term(RamaFunction4<T0,T1,T2,T3,R0> termFunction,
Object arg1,
Object arg2,
Object arg3)`

Terminal point of a transform path that updates navigated value with the provided function of four arguments.

`static <T0,
T1,
T2,
T3,
T4,
R0>
Path.Impl`

`term(RamaFunction5<T0,T1,T2,T3,T4,R0> termFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Terminal point of a transform path that updates navigated value with the provided function of five arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
R0>
Path.Impl`

`term(RamaFunction6<T0,T1,T2,T3,T4,T5,R0> termFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Terminal point of a transform path that updates navigated value with the provided function of six arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
R0>
Path.Impl`

`term(RamaFunction7<T0,T1,T2,T3,T4,T5,T6,R0> termFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Terminal point of a transform path that updates navigated value with the provided function of seven arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
R0>
Path.Impl`

`term(RamaFunction8<T0,T1,T2,T3,T4,T5,T6,T7,R0> termFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6,
Object arg7)`

Terminal point of a transform path that updates navigated value with the provided function of eight arguments.

`static Path.Impl`

`termVal(Object argVal)`

Terminal point of a transform path that overrides navigated value to provided value

`static Path.Impl`

`termVoid()`

Terminal point of a transform path that sets navigated value to void, causing it to be removed.

`static Path.Impl`

`transformed(Path path)`

Navigates to transformation of current value with given path.

`static <T0,
R0> Path.Impl`

`view(RamaFunction1<T0,R0> viewFunction)`

Navigates to result of applying given function to current value.

`static <T0,
T1,
R0>
Path.Impl`

`view(RamaFunction2<T0,T1,R0> viewFunction,
Object arg1)`

Navigates to result of applying given function to current value and provided arguments.

`static <T0,
T1,
T2,
R0>
Path.Impl`

`view(RamaFunction3<T0,T1,T2,R0> viewFunction,
Object arg1,
Object arg2)`

Navigates to result of applying given function to current value and provided arguments.

`static <T0,
T1,
T2,
T3,
R0>
Path.Impl`

`view(RamaFunction4<T0,T1,T2,T3,R0> viewFunction,
Object arg1,
Object arg2,
Object arg3)`

Navigates to result of applying given function to current value and provided arguments.

`static <T0,
T1,
T2,
T3,
T4,
R0>
Path.Impl`

`view(RamaFunction5<T0,T1,T2,T3,T4,R0> viewFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4)`

Navigates to result of applying given function to current value and provided arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
R0>
Path.Impl`

`view(RamaFunction6<T0,T1,T2,T3,T4,T5,R0> viewFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5)`

Navigates to result of applying given function to current value and provided arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
R0>
Path.Impl`

`view(RamaFunction7<T0,T1,T2,T3,T4,T5,T6,R0> viewFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6)`

Navigates to result of applying given function to current value and provided arguments.

`static <T0,
T1,
T2,
T3,
T4,
T5,
T6,
T7,
R0>
Path.Impl`

`view(RamaFunction8<T0,T1,T2,T3,T4,T5,T6,T7,R0> viewFunction,
Object arg1,
Object arg2,
Object arg3,
Object arg4,
Object arg5,
Object arg6,
Object arg7)`

Navigates to result of applying given function to current value and provided arguments.

`static Path.Impl`

`voidSetElem()`

Navigates to void element of set.

`static Path.Impl`

`withPageSize(Object argPageSize,
Path path)`

Pagination done by navigators in subpath use the specified page size.

- ## Method Details

- ### create )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)create()

Creates an empty Path. `Path.key("a")` is the same as `Path.create().key("a")`

- ### all )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)all()

Navigates to every element of a collection. Works on lists, maps, and sets. For maps
    navigates to key/value pair with [`List`](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/List.html "class or interface in java.util") interface. Value navigator.

Pseudocode example: `select({"a": 1, "b": 2)}, Path.all()) -> [["a", 1], ["b", 2]]`

Pseudocode example: `select([1, 2, 3], Path.all()) -> [1, 2, 3]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce diffs according to the type of data
    structure involved. For sequences produces [`SequenceIndexChangesDiff`](/content/javadoc/com/rpl/rama/diffs/SequenceIndexChangesDiff.html "class in com.rpl.rama.diffs"/index.html), [`SequenceIndexRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/SequenceIndexRemoveDiff.html "class in com.rpl.rama.diffs"/index.html), or a combination. For sets produces [`SetAddDiff`](/content/javadoc/com/rpl/rama/diffs/SetAddDiff.html "class in com.rpl.rama.diffs"/index.html), [`SetRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/SetRemoveDiff.html "class in com.rpl.rama.diffs"/index.html), or a combination. For maps produces [`KeyDiff`](/content/javadoc/com/rpl/rama/diffs/KeyDiff.html "class in com.rpl.rama.diffs"/index.html), [`KeyRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/KeyRemoveDiff.html "class in com.rpl.rama.diffs"/index.html), or a combination. When multiple diffs are produces they are combined with [`MultiDiff`](/content/javadoc/com/rpl/rama/diffs/MultiDiff.html "class in com.rpl.rama.diffs"/index.html).

- ### mapKeys )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)mapKeys()

Navigates to every key of a map. In transforms, changing a key is the same as removing
    the original key and then adding the updated key with the original value. Value navigator.

Pseudocode example: `select({"a": 1, "b": 2)}, Path.mapKeys()) -> ["a", "b"]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`KeysRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/KeysRemoveDiff.html "class in com.rpl.rama.diffs"/index.html), [`KeysDiff`](/content/javadoc/com/rpl/rama/diffs/KeysDiff.html "class in com.rpl.rama.diffs"/index.html),
    or a combination of the two with [`MultiDiff`](/content/javadoc/com/rpl/rama/diffs/MultiDiff.html "class in com.rpl.rama.diffs"/index.html).

- ### mapVals )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)mapVals()

Navigates to every value of a map. Value navigator.

Pseudocode example: `select({"a": 1, "b": 2)}, Path.mapVals()) -> [1, 2]`

- ### mapKey )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)mapKey( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKey)

Navigates to a key in a map if it exists. In transforms, changing the key is the same as
    removing the original key and then adding the updated key with the original value. This
    navigator is generally only useful in transforms. Value navigator.

Pseudocode example: `select({"a": 1, "b": 2)}, Path.mapKey("a")) -> ["a"]`

Pseudocode example: `select({"a": 1, "b": 2)}, Path.mapKey("c")) -> []`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`KeyChangeDiff`](/content/javadoc/com/rpl/rama/diffs/KeyChangeDiff.html "class in com.rpl.rama.diffs"/index.html) or [`KeyRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/KeyRemoveDiff.html "class in com.rpl.rama.diffs"/index.html).

Parameters:`argKey` \- Key to navigate to
  - ### subMap )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)subMap( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... argKeys)

Navigates to a map containing subset of keys/values of starting map.
    Substructure navigator.

Pseudocode example: `select({"a": 1, "b": 2, "c": 3)}, Path.subMap("a", "c", "d")) -> [{"a": 1, "c": 3}]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator that do fine-grained updates to the submap produce
    [`KeysRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/KeysRemoveDiff.html "class in com.rpl.rama.diffs"/index.html), [`KeysDiff`](/content/javadoc/com/rpl/rama/diffs/KeysDiff.html "class in com.rpl.rama.diffs"/index.html),
    or a combination of the two with [`MultiDiff`](/content/javadoc/com/rpl/rama/diffs/MultiDiff.html "class in com.rpl.rama.diffs"/index.html). If the submap is modified in a coarse-grained
    way (e.g. overridden completely with [`termVal(java.lang.Object)`](/content/javadoc/com/rpl/rama/Path.html#termVal(java.lang.Object))), this navigator will produce a [`NewValueDiff`](/content/javadoc/com/rpl/rama/diffs/NewValueDiff.html "class in com.rpl.rama.diffs"/index.html).

Parameters:`argKeys` \- Keys to select in starting map. Non-existing keys are ignored.
  - ### must )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)must( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... argKeys)

Navigates to value for a key in a map only if key exists. If key does not exist,
    stops navigation. For convenience, can navigate into further nested maps by providing
    multiple key arguments. Value navigator.

Example: `Path.must("a", "b")` is same as `Path.must("a").must("b")`

Pseudocode example: `select({"a": 1, "b": 2)}, Path.must("a")) -> [1]`

Pseudocode example: `select({"a": 1, "b": 2)}, Path.must("c")) -> []`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`KeyDiff`](/content/javadoc/com/rpl/rama/diffs/KeyDiff.html "class in com.rpl.rama.diffs"/index.html) or [`KeyRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/KeyRemoveDiff.html "class in com.rpl.rama.diffs"/index.html).

Parameters:`argKeys` \- Keys to navigate in order
  - ### key )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)key( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... argKeys)

Navigates to value for a key in a map. For convenience, can navigate into further
    nested maps by providing multiple key arguments. Value navigator.

Example: `Path.key("a", "b")` is same as `Path.key("a").key("b")`

Pseudocode example: `select({"a": 1, "b": 2)}, Path.key("a")) -> [1]`

Pseudocode example: `select({"a": 1, "b": 2)}, Path.key("c")) -> [null]`

Parameters:`argKeys` \- Keys to navigate in order
  - ### sortedSetRange )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRange( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemStart,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemEnd)

Navigates on a sorted set to a sorted set of all values in that set between a range.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRange("a", "d")) -> [sortedSet("a", "b")]`

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRange("b", "e")) -> [sortedSet("b", "d")]`

Parameters:`argElemStart` \- Start of range, inclusive`argElemEnd` \- End of range, exclusive
  - ### sortedSetRange )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRange( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemStart,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemEnd,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argOptions)

Navigates on a sorted set to a sorted set of all values in that set between a range, with options to change inclusive/exclusive status of start and end elements.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRange("a", "d", SortedRangeOptions.excludeStart())) -> [sortedSet("b")]`

Pseudocode example: `select(sortedSet{"a", "b", "d", "e"}, Path.sortedSetRange("b", "e", SortedRangeOptions.includeEnd())) -> [sortedSet("b", "d", "e")]`

Parameters:`argElemStart` \- Start element of range, inclusive unless modified by options`argElemEnd` \- End element of range, exclusive unless modified by options`argOptions` \- Instance of [`SortedRangeOptions`](/content/javadoc/com/rpl/rama/SortedRangeOptions.html "interface in com.rpl.rama"/index.html)
  - ### sortedSetRangeFrom )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRangeFrom( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemStart)

Navigates on a sorted set to a sorted set of all values in that set after an element.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRangeFrom("b")) -> [sortedSet("b", "d")]`

Parameters:`argElemStart` \- Start of range, inclusive
  - ### sortedSetRangeFrom )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRangeFrom( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemStart,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argAmtOrOptions)

Navigates on a sorted set to a sorted set starting from a specified element, with options to read a fixed number of elements or configure whether start element is inclusive or exclusive.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRangeFrom("a", 2)) -> [sortedSet("a", "b")]`

Pseudocode example: `select(sortedSet{"a", "b", "d", "e"}, Path.sortedSetRangeFrom("a", SortedRangeFromOptions.excludeStart().maxAmt(2))) -> [sortedSet("b", "d")]`

Parameters:`argElemStart` \- Start of range, inclusive unless modified by options`argAmtOrOptions` \- Either a number indicating maximum number of elements to include in result or an instance of [`SortedRangeFromOptions`](/content/javadoc/com/rpl/rama/SortedRangeFromOptions.html "interface in com.rpl.rama"/index.html)
  - ### sortedSetRangeFromStart )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRangeFromStart( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argMaxAmt)

Navigates on a sorted set to a sorted set of all values in that set after the start up to the provided max amount.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRangeFromStart(2)) -> [sortedSet("a", "b")]`

Parameters:`argMaxAmt` \- Maximum number of entries to return
  - ### sortedSetRangeTo )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRangeTo( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemTo)

Navigates on a sorted set to a sorted set of all values in that set up to an element.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRangeTo("d")) -> [sortedSet("a", "b")]`

Parameters:`argElemTo` \- End of range, exclusive
  - ### sortedSetRangeTo )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRangeTo( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argElemTo,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argAmtOrOptions)

Navigates on a sorted set to a sorted set up to a specified element, with options to read a fixed number of elements or configure whether end element is inclusive or exclusive.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d", "e"}, Path.sortedSetRangeTo("e", 2)) -> [sortedSet("b", "d")]`

Pseudocode example: `select(sortedSet{"a", "b", "d", "e"}, Path.sortedSetRangeTo("e", SortedRangeToOptions.includeEnd().maxAmt(2))) -> [sortedSet("d", "e")]`

Pseudocode example: `select(sortedSet{"a", "b", "d", "e"}, Path.sortedSetRangeTo("b", SortedRangeToOptions.includeEnd())) -> [sortedSet("a", "b")]`

Parameters:`argElemTo` \- End of range, exclusive unless modified by options`argAmtOrOptions` \- Either a number indicating maximum number of elements to include in result or an instance of [`SortedRangeToOptions`](/content/javadoc/com/rpl/rama/SortedRangeToOptions.html "interface in com.rpl.rama"/index.html)
  - ### sortedSetRangeToEnd )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedSetRangeToEnd( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argMaxAmt)

Navigates on a sorted set to a sorted set of all values in that set from the end, up to the provided max amount.
    Useful on [subindexed sets](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedSet{"a", "b", "d"}, Path.sortedSetRangeToEnd(2)) -> [sortedSet("b", "d")]`

Parameters:`argMaxAmt` \- Maximum number of entries to return
  - ### sortedMapRange )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRange( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyStart,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyEnd)

Navigates on a sorted map to a sorted map of all elements in that map between a range of keys.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRange("a", "d")) -> [sortedMap("a": 1, "b": 2)]`

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRange("b", "e")) -> [sortedMap{"b": 2, "d": 4})]`

Parameters:`argKeyStart` \- Start key of range, inclusive`argKeyEnd` \- End key of range, exclusive
  - ### sortedMapRange )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRange( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyStart,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyEnd,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argOptions)

Navigates on a sorted map to a sorted map of all elements in that map between a range of keys, with options to change inclusive/exclusive status of start and end keys.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRange("a", "d", SortedRangeOptions.excludeStart())) -> [sortedMap("b": 2)]`

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRange("b", "d", SortedRangeOptions.includeEnd())) -> [sortedMap{"b": 2, "d": 4})]`

Parameters:`argKeyStart` \- Start key of range, inclusive unless modified by options`argKeyEnd` \- End key of range, exclusive unless modified by options`argOptions` \- Instance of [`SortedRangeOptions`](/content/javadoc/com/rpl/rama/SortedRangeOptions.html "interface in com.rpl.rama"/index.html)
  - ### sortedMapRangeFrom )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRangeFrom( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyStart)

Navigates on a sorted map to a sorted map of all elements in that map after a key.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRangeFrom("b")) -> [sortedMap("b": 2, "d": 4)]`

Parameters:`argKeyStart` \- Start key of range, inclusive
  - ### sortedMapRangeFrom )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRangeFrom( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyStart,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argAmtOrOptions)

Navigates on a sorted map to a sorted map starting from a specified key, with options to read a fixed number of elements or configure whether start key is inclusive or exclusive.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRangeFrom("a", 2)) -> [sortedMap("a": 1, "b": 2)]`

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4, "e": 5}, Path.sortedMapRangeFrom("a", SortedRangeFromOptions.excludeStart().maxAmt(2))) -> [sortedMap("b": 2, "d": 4)]`

Parameters:`argKeyStart` \- Start key of range, inclusive`argAmtOrOptions` \- Either a number indicating maximum number of elements to include in result or an instance of [`SortedRangeFromOptions`](/content/javadoc/com/rpl/rama/SortedRangeFromOptions.html "interface in com.rpl.rama"/index.html)
  - ### sortedMapRangeFromStart )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRangeFromStart( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argMaxAmt)

Navigates on a sorted map to a sorted map of all elements in that map from the start up to the provided max amount.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRangeFromStart(2)) -> [sortedMap("a": 1, "b": 2)]`

Parameters:`argMaxAmt` \- Maximum number of entries to return
  - ### sortedMapRangeTo )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRangeTo( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyTo)

Navigates on a sorted map to a sorted map of all values in that map up to a key.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRangeTo("d")) -> [sortedMap("a": 1, "b": 2)]`

Parameters:`argKeyTo` \- End key of range, exclusive
  - ### sortedMapRangeTo )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRangeTo( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argKeyTo,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argAmtOrOptions)

Navigates on a sorted map to a sorted map up to a specified key, with options to read a fixed number of elements or configure whether end key is inclusive or exclusive.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4, "e": 5}, Path.sortedMapRangeTo("e", 2)) -> [sortedMap("b": 2, "d": 4)]`

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4, "e": 5}, Path.sortedMapRangeTo("e", SortedRangeToOptions.includeEnd().maxAmt(2))) -> [sortedMap("d": 4, "e": 5)]`

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4, "e": 5}, Path.sortedMapRangeTo("b", SortedRangeToOptions.includeEnd())) -> [sortedMap("a": 1, "b": 2)]`

Parameters:`argKeyTo` \- End key of range, exclusive unless modified by options`argAmtOrOptions` \- Either a number indicating maximum number of elements to include in result or an instance of [`SortedRangeToOptions`](/content/javadoc/com/rpl/rama/SortedRangeToOptions.html "interface in com.rpl.rama"/index.html)
  - ### sortedMapRangeToEnd )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sortedMapRangeToEnd( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argMaxAmt)

Navigates on a sorted map to a sorted map of all elements in that map from the end up to the provided max amount.
    Useful on [subindexed maps](/content/docs/~/pstates.html#_subindexing/index.html). Substructure navigator.

Pseudocode example: `select(sortedMap{"a": 1, "b": 2, "d": 4}, Path.sortedMapRangeFromStart(2)) -> [sortedMap("b": 1, "d": 2)]`

Parameters:`argMaxAmt` \- Maximum number of entries to return
  - ### afterElem )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)afterElem()

Navigates on a list to void element at end. Used in transforms to append a single element.
    Virtual value navigator.

Pseudocode example: `transform([1, 2], Path.afterElem().termVal(4)) -> [1, 2, 4]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`SequenceInsertDiff`](/content/javadoc/com/rpl/rama/diffs/SequenceInsertDiff.html "class in com.rpl.rama.diffs"/index.html).

- ### beforeElem )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)beforeElem()

Navigates on a list to void element at beginning. Used in transforms to prepend a single element.
    Virtual value navigator.

Pseudocode example: `transform([1, 2], Path.beforeElem().termVal(4)) -> [4, 1, 2]`

- ### beginning )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)beginning()

Navigates on a list to empty subsequence at beginning. Used in transforms to prepend multiple
    elements. Substructure navigator.

Pseudocode example: `transform([1, 2], Path.beginning().termVal([3, 4])) -> [3, 4, 1, 2]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`SequenceInsertsDiff`](/content/javadoc/com/rpl/rama/diffs/SequenceInsertsDiff.html "class in com.rpl.rama.diffs"/index.html).

- ### end )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)end()

Navigates on a list to empty subsequence at end. Used in transforms to append multiple elements.
    Substructure navigator.

Pseudocode example: `transform([1, 2], Path.end().termVal([3, 4])) -> [1, 2, 3, 4]`

- ### first )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)first()

Navigates on list to first element if not empty. If empty, stops navigation. Value navigator.

Pseudocode example: `select([1, 2, 3], Path.first()) -> [1]`

Pseudocode example: `select([], Path.first()) -> []`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`SequenceIndexChangeDiff`](/content/javadoc/com/rpl/rama/diffs/SequenceIndexChangeDiff.html "class in com.rpl.rama.diffs"/index.html) or
    [`SequenceIndexRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/SequenceIndexRemoveDiff.html "class in com.rpl.rama.diffs"/index.html).

- ### last )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)last()

Navigates on list to last element if not empty. If empty, stops navigation. Value navigator.

Pseudocode example: `select([1, 2, 3], Path.last()) -> [3]`

Pseudocode example: `select([], Path.last()) -> []`

- ### indexedVals )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)indexedVals()

Navigates to pairs of `[index, value]` for every element of list. Pairs are represented as lists of
    two elements. Transforms should produce new `[index, value]` pairs. Changing an index in a transform
    will move the element in the resulting list. Value navigator.

Pseudocode example: `select([1, 2, 3], Path.indexedVals()) -> [[0, 1], [1, 2], [2, 3]]`

Pseudocode example: `transform([1, 2, 3, 4], Path.indexedVals().first().termVal(0)) -> [4, 3, 2, 1]`

- ### beforeIndex )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)beforeIndex( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argIndex)

Navigates on list to void element before an index. Used in transforms to insert an element in
    middle of list. Virtual value navigator.

Pseudocode example: `transform([1, 2, 3], Path.beforeIndex(2).termVal(0)) -> [1, 2, 0, 3]`

Parameters:`argIndex` \- Index of list
  - ### filteredList )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filteredList( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Navigates to sublist of elements filtered based on given Path. An element is included in sublist if path applied
    to that element navigates to at least one value. Transforms on sublist will modify the locations in the original
    list. Substructure navigator.

Pseudocode example: `select([1, 2, 3, 4, 5], Path.filteredList(Path.filterPred(Ops.IS_ODD))) -> [1, 3, 5]`

Pseudocode example: `transform([1, 2, 3, 4, 5], Path.filteredList(Path.filterPred(Ops.IS_ODD)).term(Ops.INC)) -> [2, 2, 4, 4, 6]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce diffs according to rest of transform path.

Parameters:`path` \- Subpath evaluated on each element of list
  - ### index )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)index( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argIndex)

Navigates to the index of a list if it exists. This navigates to the index, not to the value at that index.
    Changing the index in a transform will move the element in the resulting list. Value navigator.

Pseudocode example: `select([1, 2, 3], Path.index(1)) -> [1]`

Pseudocode example: `select([1, 2, 3], Path.index(9)) -> []`

Pseudocode example: `transform([1, 2, 3], Path.index(0).termVal(2)) -> [2, 3, 1]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`SequenceReorderDiff`](/content/javadoc/com/rpl/rama/diffs/SequenceReorderDiff.html "class in com.rpl.rama.diffs"/index.html).

Parameters:`argIndex` \- Index of list
  - ### nth )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)nth( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argIndex)

Navigates to value for index in a list. Value navigator.

Pseudocode example: `select([1, 2, 3], Path.nth(1)) -> [2]`

Parameters:`argIndex` \- Index of list
  - ### sublist )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sublist( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argStartIndex,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argEndIndex)

Navigates to sublist bounded by two indexes. Substructure navigator.

Pseudocode example: `select([1, 2, 3, 4], Path.sublist(2, 4)) -> [[2, 3]]`

Pseudocode example: `transform([1, 2, 3, 4], Path.sublist(2, 4).termVal(null)) -> [1, 4]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce sequence diffs according to the
    rest of the transform path.

Parameters:`argStartIndex` \- Start index of range, inclusive`argEndIndex` \- End index of range, exclusive
  - ### sublistDynamic )

static<T0,
    R0,
    T1,
    T2,
    R1>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)sublistDynamic( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0,R0> startFunction,
    [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) <T1,T2,R1> endFunction)

Navigates to sublist bounded by indexes chosen by functions. Substructure navigator.

Parameters:`startFunction` \- Receives list as input and returns start index (inclusive)`endFunction` \- Receives list and start index as input and returns end index (exclusive)
  - ### voidSetElem )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)voidSetElem()

Navigates to void element of set. Used to add a single element to a set in transforms. Virtual
    value navigator.

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`SetAddDiff`](/content/javadoc/com/rpl/rama/diffs/SetAddDiff.html "class in com.rpl.rama.diffs"/index.html).

Pseudocode example: `transform(set{1, 2}, Path.voidSetElem().termVal(5)) -> set{1, 2, 5}`

- ### setElem )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)setElem( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Navigates to element of set if it exists. If element does not exist, stops navigation.
    Value navigator.

Pseudocode example: `select(set{1, 2}, Path.setElem(1)) -> [1]`

Pseudocode example: `select(set{1, 2}, Path.setElem(13)) -> []`

Pseudocode example: `transform(set{1, 2}, Path.setElem(1).termVal(3)) -> set{2, 3}`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce
    [`SetAddDiff`](/content/javadoc/com/rpl/rama/diffs/SetAddDiff.html "class in com.rpl.rama.diffs"/index.html), [`SetRemoveDiff`](/content/javadoc/com/rpl/rama/diffs/SetRemoveDiff.html "class in com.rpl.rama.diffs"/index.html),
    or a combination with [`MultiDiff`](/content/javadoc/com/rpl/rama/diffs/MultiDiff.html "class in com.rpl.rama.diffs"/index.html).

Parameters:`argVal` \- Set element
  - ### subset )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)subset( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang")... argVals)

Navigates to subset of starting set with given elements. Substructure navigator.

Pseudocode example: `select(set{1, 2, 3}, Path.subset(1, 3, 4)) -> [set{1, 3}]`

Parameters:`argVals` \- Elements to select in starting set. Non-existing elements are ignored.
  - ### nullToList )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)nullToList()

Navigates to empty list if currently navigated to null. Otherwise, stays navigated at
    current location. View navigator.

Pseudocode example: `select(null, Path.nullToList()) -> [[]]`

Pseudocode example: `select(3, Path.nullToList()) -> [3]`

Pseudocode example: `transform(null, Path.nullToList().term(Ops.IDENTITY)) -> []`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce diffs depending on if original value
    was `null`. If `null`, produces [`NewValueDiff`](/content/javadoc/com/rpl/rama/diffs/NewValueDiff.html "class in com.rpl.rama.diffs"/index.html). Otherwise produces diffs
    according to rest of transform path.

- ### nullToSet )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)nullToSet()

Navigates to empty set if currently navigated to null. Otherwise, stays navigated at
    current location. View navigator.

Pseudocode example: `select(null, Path.nullToSet()) -> [set{}]`

Pseudocode example: `select(3, Path.nullToSet()) -> [3]`

Pseudocode example: `transform(null, Path.nullToSet().term(Ops.IDENTITY)) -> set{}`

- ### nullToVal )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)nullToVal( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Navigates to given value if currently navigated to null. Otherwise, stays navigated at
    current location. View navigator.

Pseudocode example: `select(null, Path.nullToVal(1)) -> [1]`

Pseudocode example: `select(3, Path.nullToVal(1)) -> [3]`

Pseudocode example: `transform(null, Path.nullToVal(1).term(Ops.IDENTITY)) -> 1`

Parameters:`argVal` \- Value to navigate to if currently navigated to null
  - ### transformed )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)transformed( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Navigates to transformation of current value with given path. View navigator.

Pseudocode example: `select([1, 2, 3], Path.transformed(Path.all().term(Ops.INC))) -> [[2, 3, 4]]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce a combination of diffs from execution
    of `path` and the rest of the transform path.

Parameters:`path` \- Transform path
  - ### collect )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)collect( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Collects a list of values selected with given path from current point.

Parameters:`path` \- Path to use for selectSee Also:

- [Value collection documentation](/content/docs/~/paths.html#_value_collection/index.html)

- ### collectOne )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)collectOne( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Collects a single value selected with given path from current point. Exception if path
    selects zero values or more than one value.

Parameters:`path` \- Path to use for selectSee Also:

- [Value collection documentation](/content/docs/~/paths.html#_value_collection/index.html)

- ### putCollected )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)putCollected( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Adds given value to collected values.

Parameters:`argVal` \- Value to addSee Also:

- [Value collection documentation](/content/docs/~/paths.html#_value_collection/index.html)

- ### isCollected )

static<T0,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)isCollected( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0,R0> predicate)

Stops navigation if given function on collected values returns false. Otherwise, stays navigated
    at current point. Filter navigator.

Parameters:`predicate` \- Function receiving list of collected values and returning true or falseSee Also:

- [Value collection documentation](/content/docs/~/paths.html#_value_collection/index.html)

- ### dispenseCollected )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)dispenseCollected()

Drops all collected values from subsequent navigation

See Also:

- [Value collection documentation](/content/docs/~/paths.html#_value_collection/index.html)

- ### stay )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)stay()

No-op that stays navigated at current point. Control navigator.

Pseudocode example: `select(2, Path.stay()) -> [2]`

- ### stop )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)stop()

Stops current branch of navigation. Control navigator.

Pseudocode example: `select(2, Path.stop()) -> []`

- ### ifPath )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)ifPath( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) conditionPath,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) thenPath)

Tests condition against current point and continues navigating with `thenPath` if
    condition passes. Condition passes if it navigates to at least one value. If condition fails,
    this branch of navigation stops. Control navigator.

Parameters:`conditionPath` \- Condition path`thenPath` \- Path used if condition passesSee Also:

- [Control navigator documentation](/content/docs/~/paths.html#_control_navigators/index.html)

- ### ifPath )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)ifPath( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) conditionPath,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) thenPath,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) elsePath)

Tests condition against current point and continues navigating with `thenPath` if
    condition passes. Condition passes if it navigates to at least one value. If condition fails,
    continues navigating with `elsePath`. Control navigator.

Parameters:`conditionPath` \- Condition path`thenPath` \- Path used if condition passes`elsePath` \- Path used if condition failsSee Also:

- [Control navigator documentation](/content/docs/~/paths.html#_control_navigators/index.html)

- ### multiPath )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)multiPath( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html)... paths)

Navigates to each provided path in order, all starting from this point. Control navigator.

Pseudocode example: `select({"a": 1, "b": 2}, Path.multiPath(Path.key("a"), Path.key("b"))) -> [1, 2]`

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce [`MultiDiff`](/content/javadoc/com/rpl/rama/diffs/MultiDiff.html "class in com.rpl.rama.diffs"/index.html).

Parameters:`paths` \- Sequence of paths to executeSee Also:

- [Control navigator documentation](/content/docs/~/paths.html#_control_navigators/index.html)

- ### subselect )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)subselect( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Navigates to list of values navigated by provided path. Transforms on that list will update
    original locations of each value, no matter how nested. Control navigator.

Parameters:`path` \- SubpathSee Also:

- [Control navigator documentation](/content/docs/~/paths.html#_control_navigators/index.html)

- ### filterPred )

static<T0,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterPred( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0,R0> pred)

Continues navigation if provided function returns true on current value. Otherwise, stops
    current branch of navigation. Filter navigator.

Pseudocode example: `select(2, Path.filterPred(Ops.IS_EVEN)) -> [2]`

Pseudocode example: `select(1, Path.filterPred(Ops.IS_EVEN)) -> []`

Parameters:`pred` \- Test function
  - ### filterEqual )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterEqual( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Continues navigation if current value is equal to provided value. Otherwise, stops
    current branch of navigation. Filter navigator.

Pseudocode example: `select(2, Path.filterEqual(2)) -> [2]`

Pseudocode example: `select(1, Path.filterEqual(2)) -> []`

Parameters:`argVal` \- Test value
  - ### filterNotEqual )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterNotEqual( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Continues navigation if current value is not equal to provided value. Otherwise, stops
    current branch of navigation. Filter navigator.

Pseudocode example: `select(2, Path.filterNotEqual(2)) -> []`

Pseudocode example: `select(1, Path.filterNotEqual(2)) -> [1]`

Parameters:`argVal` \- Test value
  - ### filterLessThan )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterLessThan( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Continues navigation if current value is less than provided value. Otherwise, stops
    current branch of navigation. Filter navigator.

Pseudocode example: `select(2, Path.filterLessThan(2)) -> []`

Pseudocode example: `select(1, Path.filterLessThan(2)) -> [1]`

Parameters:`argVal` \- Test value
  - ### filterLessThanOrEqual )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterLessThanOrEqual( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Continues navigation if current value is less than or equal to provided value. Otherwise, stops
    current branch of navigation. Filter navigator.

Pseudocode example: `select(2, Path.filterLessThanOrEqual(1)) -> []`

Pseudocode example: `select(2, Path.filterLessThanOrEqual(2)) -> [2]`

Pseudocode example: `select(2, Path.filterLessThanOrEqual(4)) -> [2]`

Parameters:`argVal` \- Test value
  - ### filterGreaterThan )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterGreaterThan( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Continues navigation if current value is greater than provided value. Otherwise, stops
    current branch of navigation. Filter navigator.

Pseudocode example: `select(2, Path.filterGreaterThan(2)) -> []`

Pseudocode example: `select(3, Path.filterGreaterThan(2)) -> [3]`

Parameters:`argVal` \- Test value
  - ### filterGreaterThanOrEqual )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterGreaterThanOrEqual( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Continues navigation if current value is greater than or equal to provided value. Otherwise, stops
    current branch of navigation. Filter navigator.

Pseudocode example: `select(2, Path.filterLessThanOrEqual(1)) -> [2]`

Pseudocode example: `select(2, Path.filterLessThanOrEqual(2)) -> [2]`

Pseudocode example: `select(2, Path.filterLessThanOrEqual(4)) -> []`

Parameters:`argVal` \- Test value
  - ### filterSelected )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterSelected( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Continues navigation if provided path executed on current value navigates to at least one value.
    Otherwise, stops current branch of navigation. Filter navigator.

Pseudocode example: `select([1, 2, 3], Path.filterSelected(Path.all().filterPred(Ops.IS_EVEN))) -> [[1, 2, 3]]`

Pseudocode example: `select([1, 3, 5], Path.filterSelected(Path.all().filterPred(Ops.IS_EVEN))) -> []`

Parameters:`path` \- Condition path
  - ### filterNotSelected )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)filterNotSelected( [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Continues navigation if provided path executed on current value navigates to zero values.
    Otherwise, stops current branch of navigation. Filter navigator.

Pseudocode example: `select([1, 2, 3], Path.filterNotSelected(Path.all().filterPred(Ops.IS_EVEN))) -> []`

Pseudocode example: `select([1, 3, 5], Path.filterNotSelected(Path.all().filterPred(Ops.IS_EVEN))) -> [[1, 3, 5]]`

Parameters:`path` \- Condition path
  - ### withPageSize )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)withPageSize( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argPageSize,
    [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) path)

Pagination done by navigators in subpath use the specified page size. Can only be used in yielding selects.

Parameters:`argPageSize` \- Page size`path` \- Subpath
  - ### termVal )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)termVal( [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") argVal)

Terminal point of a transform path that overrides navigated value to provided value

See Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### termVoid )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)termVoid()

Terminal point of a transform path that sets navigated value to void, causing it to be removed.

For [proxies](/content/docs/~/pstates.html#_reactive_queries/index.html) transforms with this navigator produce [`NewValueDiff`](/content/javadoc/com/rpl/rama/diffs/NewValueDiff.html "class in com.rpl.rama.diffs"/index.html).

See Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### customNav )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNav( [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) nav)

Adds custom navigator implementation to Path

See Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### view )

static<T0,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0,R0> viewFunction)

Navigates to result of applying given function to current value. View navigator.

Pseudocode example: `select(2, Path.view(Ops.INC)) -> [3]`

Parameters:`viewFunction` \- Function to apply
  - ### view )

static<T0,
    T1,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,R0> viewFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Navigates to result of applying given function to current value and provided arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `view`.

Parameters:`viewFunction` \- Function to apply of two arguments
  - ### view )

static<T0,
    T1,
    T2,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,R0> viewFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Parameters:`viewFunction` \- Function to apply of three arguments
  - ### view )

static<T0,
    T1,
    T2,
    T3,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,R0> viewFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Parameters:`viewFunction` \- Function to apply of four arguments
  - ### view )

static<T0,
    T1,
    T2,
    T3,
    T4,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,R0> viewFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Parameters:`viewFunction` \- Function to apply of five arguments
  - ### view )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,R0> viewFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Parameters:`viewFunction` \- Function to apply of six arguments
  - ### view )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,R0> viewFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Parameters:`viewFunction` \- Function to apply of seven arguments
  - ### view )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    T7,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)view( [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,T7,R0> viewFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg7)

Parameters:`viewFunction` \- Function to apply of eight arguments
  - ### customNavBuilder )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction0](/content/javadoc/com/rpl/rama/ops/RamaFunction0.html "interface in com.rpl.rama.ops"/index.html) < [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction)

Adds a custom navigator built dynamically with the provided function of zero arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of zero argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0)

Adds a custom navigator built dynamically with the provided function of one argument. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of one argumentSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0,
    T1>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) <T0,T1, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Adds a custom navigator built dynamically with the provided function of two arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of two argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0,
    T1,
    T2>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Adds a custom navigator built dynamically with the provided function of three arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of three argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0,
    T1,
    T2,
    T3>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Adds a custom navigator built dynamically with the provided function of four arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of four argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Adds a custom navigator built dynamically with the provided function of five arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of five argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Adds a custom navigator built dynamically with the provided function of six arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of six argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Adds a custom navigator built dynamically with the provided function of seven arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of seven argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### customNavBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    T7>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)customNavBuilder( [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,T7, [Navigator](/content/javadoc/com/rpl/rama/Navigator.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg7)

Adds a custom navigator built dynamically with the provided function of eight arguments. Additional arguments to `customNavBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Navigator builder function of eight argumentsSee Also:

- [Custom navigators documentation](/content/docs/~/paths.html#_custom_navigators/index.html)

- ### pathBuilder )

static[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction0](/content/javadoc/com/rpl/rama/ops/RamaFunction0.html "interface in com.rpl.rama.ops"/index.html) < [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction)

Concatenates a path to the current path constructed with the provided function of zero arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of zero arguments
  - ### pathBuilder )

static<T0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0)

Concatenates a path to the current path constructed with the provided function of one argument. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of one argument
  - ### pathBuilder )

static<T0,
    T1>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) <T0,T1, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Concatenates a path to the current path constructed with the provided function of two arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of two arguments
  - ### pathBuilder )

static<T0,
    T1,
    T2>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Concatenates a path to the current path constructed with the provided function of three arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of three arguments
  - ### pathBuilder )

static<T0,
    T1,
    T2,
    T3>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Concatenates a path to the current path constructed with the provided function of four arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of four arguments
  - ### pathBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Concatenates a path to the current path constructed with the provided function of five arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of five arguments
  - ### pathBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Concatenates a path to the current path constructed with the provided function of six arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of six arguments
  - ### pathBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Concatenates a path to the current path constructed with the provided function of seven arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of seven arguments
  - ### pathBuilder )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    T7>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)pathBuilder( [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,T7, [Path](/content/javadoc/com/rpl/rama/Path.html "interface in com.rpl.rama"/index.html) > builderFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg0,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg7)

Concatenates a path to the current path constructed with the provided function of eight arguments. Additional arguments to `pathBuilder` after the
    first are passed to the provided function at runtime.

Parameters:`builderFunction` \- Path builder function of eight arguments
  - ### term )

static<T0,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction1](/content/javadoc/com/rpl/rama/ops/RamaFunction1.html "interface in com.rpl.rama.ops"/index.html) <T0,R0> termFunction)

Terminal point of a transform path that updates navigated value with the provided function
    of one argument.

Parameters:`termFunction` \- Transform function on navigated valueSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### term )

static<T0,
    T1,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction2](/content/javadoc/com/rpl/rama/ops/RamaFunction2.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,R0> termFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1)

Terminal point of a transform path that updates navigated value with the provided function of two arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `term`.

Parameters:`termFunction` \- Transform function of two argumentsSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### term )

static<T0,
    T1,
    T2,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction3](/content/javadoc/com/rpl/rama/ops/RamaFunction3.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,R0> termFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2)

Terminal point of a transform path that updates navigated value with the provided function of three arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `term`.

Parameters:`termFunction` \- Transform function of three argumentsSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### term )

static<T0,
    T1,
    T2,
    T3,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction4](/content/javadoc/com/rpl/rama/ops/RamaFunction4.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,R0> termFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3)

Terminal point of a transform path that updates navigated value with the provided function of four arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `term`.

Parameters:`termFunction` \- Transform function of four argumentsSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### term )

static<T0,
    T1,
    T2,
    T3,
    T4,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction5](/content/javadoc/com/rpl/rama/ops/RamaFunction5.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,R0> termFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4)

Terminal point of a transform path that updates navigated value with the provided function of five arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `term`.

Parameters:`termFunction` \- Transform function of five argumentsSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### term )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction6](/content/javadoc/com/rpl/rama/ops/RamaFunction6.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,R0> termFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5)

Terminal point of a transform path that updates navigated value with the provided function of six arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `term`.

Parameters:`termFunction` \- Transform function of six argumentsSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### term )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction7](/content/javadoc/com/rpl/rama/ops/RamaFunction7.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,R0> termFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6)

Terminal point of a transform path that updates navigated value with the provided function of seven arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `term`.

Parameters:`termFunction` \- Transform function of seven argumentsSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)

- ### term )

static<T0,
    T1,
    T2,
    T3,
    T4,
    T5,
    T6,
    T7,
    R0>[Path.Impl](/content/javadoc/com/rpl/rama/Path.Impl.html "interface in com.rpl.rama"/index.html)term( [RamaFunction8](/content/javadoc/com/rpl/rama/ops/RamaFunction8.html "interface in com.rpl.rama.ops"/index.html) <T0,T1,T2,T3,T4,T5,T6,T7,R0> termFunction,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg1,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg2,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg3,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg4,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg5,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg6,
    [Object](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html "class or interface in java.lang") arg7)

Terminal point of a transform path that updates navigated value with the provided function of eight arguments.
    The first argument will be the navigated value, and remaining arguments will be additional arguments
    provided to `term`.

Parameters:`termFunction` \- Transform function of eight argumentsSee Also:

- [Transform paths documentation](/content/docs/~/paths.html#_transform_paths/index.html)
