Package io.microsphere.util
Class Functional<V>
- java.lang.Object
-
- io.microsphere.util.Functional<V>
-
- Type Parameters:
V- The type of the value being operated on
public class Functional<V> extends java.lang.ObjectA fluent API utility class for performing chained operations on a value of typeV.This class allows for conditional processing (
on(Predicate)), value transformation (as(Function)), and side-effect execution (apply(Consumer)) in a fluent and readable manner.The state of the object is not thread-safe due to the mutable internal state tracking (e.g., matched). It's designed for single-threaded use or must be externally synchronized when used concurrently.
Example Usage
// Example 1: Conditional mapping String result = Functional.value("Hello") .on(s -> s.length() > 3) .as(String::toUpperCase) .value(); // Example 2: Conditional side effect Functional.value(42) .on(n -> n > 40) .apply(n -> System.out.println("Value is: " + n)); // Example 3: Named functional operation Functional.of("user", user) .on(u -> u.isActive()) .as(User::getName) .apply(name -> System.out.println("Active user: " + name));- Since:
- 1.0.0
- Author:
- Mercy
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedFunctional(java.lang.String name, V value)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidapply(java.util.function.Consumer<V> valueConsumer)<R> Functional<R>as(java.util.function.Function<V,R> function)static <V> Functional<V>of(java.lang.String name, java.util.function.Supplier<V> valueSupplier)static <V> Functional<V>of(java.lang.String name, V value)Functional<V>on(java.util.function.Predicate<? super V> predicate)java.lang.StringtoString()static <V> Functional<V>value(java.util.function.Supplier<V> valueSupplier)static <V> Functional<V>value(V value)
-
-
-
Constructor Detail
-
Functional
protected Functional(java.lang.String name, V value)
-
-
Method Detail
-
on
public Functional<V> on(java.util.function.Predicate<? super V> predicate)
-
as
public <R> Functional<R> as(java.util.function.Function<V,R> function)
-
apply
public void apply(java.util.function.Consumer<V> valueConsumer)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
value
public static <V> Functional<V> value(java.util.function.Supplier<V> valueSupplier)
-
value
public static <V> Functional<V> value(V value)
-
of
public static <V> Functional<V> of(java.lang.String name, java.util.function.Supplier<V> valueSupplier)
-
of
public static <V> Functional<V> of(java.lang.String name, V value)
-
-