Package jsonvalues
Class Lens<S,O>
- java.lang.Object
-
- jsonvalues.Lens<S,O>
-
- Type Parameters:
S
- the source of a lensO
- the target of a lens
- Direct Known Subclasses:
JsBinaryLens
,JsInstantLens
public class Lens<S,O> extends java.lang.Object
A Lens is an optic that can be seen as a pair of functions:- get: S => O i.e. from an S, we can extract an O - set: (O, S) => S i.e. from an S and a O, we obtain a S. Unless a prism, to go back to S we need another S.
Typically a Lens can be defined between a Product (e.g. record, tuple) and one of its component. Given a lens there are essentially three things you might want to do: -view the subpart -modify the whole by changing the subpart -combine this lens with another lens to look even deeper
-
-
Field Summary
Fields Modifier and Type Field Description java.util.function.Function<java.util.function.Predicate<O>,java.util.function.Predicate<S>>
exists
check if there is a target, and it satisfies the predicatejava.util.function.Function<java.util.function.Predicate<O>,java.util.function.Function<S,java.util.Optional<O>>>
find
find if the target satisfies the predicatejava.util.function.Function<S,O>
get
function to view the partjava.util.function.Function<java.util.function.Function<O,O>,java.util.function.Function<S,S>>
modify
function to modify the whole by modifying the subpart with a functionjava.util.function.Function<O,java.util.function.Function<S,S>>
set
function to modify the whole by setting the subpart
-
-
-
Field Detail
-
set
public final java.util.function.Function<O,java.util.function.Function<S,S>> set
function to modify the whole by setting the subpart
-
find
public final java.util.function.Function<java.util.function.Predicate<O>,java.util.function.Function<S,java.util.Optional<O>>> find
find if the target satisfies the predicate
-
exists
public final java.util.function.Function<java.util.function.Predicate<O>,java.util.function.Predicate<S>> exists
check if there is a target, and it satisfies the predicate
-
-