blob: 98ca2aba647fb39d468faef25a90c8725a79c96b [file] [log] [blame]
Pierre De Ropfaca2892016-01-31 23:27:05 +00001package org.apache.felix.dm.lambda.callbacks;
2
3import java.util.Objects;
4
5/**
6 * Represents a callback(Service) on an Object instance.
7 *
8 * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
9 */
10@FunctionalInterface
11public interface CbService<S> {
12 /**
13 * Handles the given argument.
14 * @param service a Service
15 */
16 void accept(S service);
17
18 default CbService<S> andThen(CbService<S> after) {
19 Objects.requireNonNull(after);
20 return (S service) -> {
21 accept(service);
22 after.accept(service);
23 };
24 }
25}