![JAR search and dependency download from the Maven repository](/logo.png)
no.finn.lambdacompanion.Success Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lambda-companion Show documentation
Show all versions of lambda-companion Show documentation
Functional structures and utilities for Java 8 and lambdas
package no.finn.lambdacompanion;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
public class Success extends Try {
private T t;
public Success(T t) {
this.t = t;
}
@Override
public Try map(ThrowingFunction super T, ? extends U, ? extends Throwable> mapper) {
try {
return new Success<>(mapper.apply(t));
} catch (Throwable e) {
return new Failure<>(e);
}
}
@Override
public Try flatMap(ThrowingFunction super T, ? extends Try, ? extends Throwable> mapper) {
try {
return mapper.apply(t);
} catch (Throwable e) {
return new Failure<>(e);
}
}
@Override
public Optional> filter(final Predicate predicate) {
Objects.requireNonNull(predicate);
if (predicate.test(t)) {
return Optional.of(this);
} else {
return Optional.empty();
}
}
@Override
public void forEach(ThrowingConsumer super T, ? extends Throwable> consumer) {
try {
consumer.accept(t);
} catch (Throwable ignore) {}
}
@Override
public Try peek(ThrowingConsumer super T, ? extends Throwable> consumer) {
forEach(consumer);
return this;
}
@Override
public Try peekFailure(Consumer> consumer) {
return this;
}
@Override
public T orElse(T defaultValue) {
return t;
}
@Override
public T orElseGet(Supplier extends T> defaultValue) {
return t;
}
@Override
public Optional toOptional() {
return Optional.ofNullable(t);
}
@Override
public U recover(Function super T, ? extends U> successFunc,
Function failureFunc) {
return successFunc.apply(t);
}
@Override
public Either extends Throwable,T> toEither() {
return Either.right(t);
}
@Override
public T orElseThrow(Function throwableMapper) throws Y {
return t;
}
@Override
public T orElseRethrow() throws E {
return t;
}
@Override
public String toString() {
return "Success{" +
"t=" + t +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Success> success = (Success>) o;
return !(t != null ? !t.equals(success.t) : success.t != null);
}
@Override
public int hashCode() {
return t != null ? t.hashCode() : 0;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy