Skip to content

Commit

Permalink
Override Consumer.andThen(...) to return a service dependency.
Browse files Browse the repository at this point in the history
  • Loading branch information
pferraro committed Sep 2, 2024
1 parent 3291e64 commit b3c994f
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
16 changes: 16 additions & 0 deletions service/src/main/java/org/wildfly/service/Dependency.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,22 @@
*/
public interface Dependency<B extends ServiceBuilder<?>, V> extends Consumer<B>, Supplier<V> {

@Override
default Dependency<B, V> andThen(Consumer<? super B> after) {
return new Dependency<>() {
@Override
public void accept(B builder) {
Dependency.this.accept(builder);
after.accept(builder);
}

@Override
public V get() {
return Dependency.this.get();
}
};
}

/**
* Returns a dependency whose value is the result of applying the specified mapping function.
* @param <R> the mapped value type
Expand Down
17 changes: 17 additions & 0 deletions service/src/main/java/org/wildfly/service/ServiceDependency.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package org.wildfly.service;

import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;

Expand All @@ -17,6 +18,22 @@
*/
public interface ServiceDependency<V> extends Dependency<ServiceBuilder<?>, V> {

@Override
default ServiceDependency<V> andThen(Consumer<? super ServiceBuilder<?>> after) {
return new ServiceDependency<>() {
@Override
public void accept(ServiceBuilder<?> builder) {
ServiceDependency.this.accept(builder);
after.accept(builder);
}

@Override
public V get() {
return ServiceDependency.this.get();
}
};
}

@Override
default <R> ServiceDependency<R> map(Function<V, R> mapper) {
return new ServiceDependency<>() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.util.Arrays;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;

Expand All @@ -26,6 +27,22 @@
*/
public interface ServiceDependency<V> extends Dependency<RequirementServiceBuilder<?>, V> {

@Override
default ServiceDependency<V> andThen(Consumer<? super RequirementServiceBuilder<?>> after) {
return new ServiceDependency<>() {
@Override
public void accept(RequirementServiceBuilder<?> builder) {
ServiceDependency.this.accept(builder);
after.accept(builder);
}

@Override
public V get() {
return ServiceDependency.this.get();
}
};
}

@Override
default <R> ServiceDependency<R> map(Function<V, R> mapper) {
return new ServiceDependency<>() {
Expand Down

0 comments on commit b3c994f

Please sign in to comment.