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:
JsArrayLens,JsBigIntLens,JsBoolLens,JsDecimalLens,JsDoubleLens,JsIntLens,JsLongLens,JsObjLens,JsPathPairLens,JsStrLens,JsValueLens,JsValuePairLens
public class Lens<S,O> extends 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 Function<S,O>getfunction to view the partFunction<Function<O,O>,Function<S,S>>modifyfunction to modify the whole by modifying the subpart with a functionFunction<O,Function<S,S>>setfunction to modify the whole by setting the subpart
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <A> Function<S,A>compose(Lens<O,A> other)Predicate<S>exists(Predicate<O> predicate)check if there is a target and it satisfies the predicateFunction<S,Optional<O>>find(Predicate<O> predicate)find if the target satisfies the predicate
-