Skip to content

Commit f258cfe

Browse files
committed
allow router overriding with(Command.Router)
1 parent ee78783 commit f258cfe

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

src/main/java/an/awesome/pipelinr/Pipelinr.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
public class Pipelinr implements Pipeline {
1111

12-
private final Command.Router router = new ToFirstMatching();
12+
private Command.Router router = new ToFirstMatching();
1313

1414
private StreamSupplier<Command.Middleware> commandMiddlewares = Stream::empty;
1515
private StreamSupplier<Command.Handler> commandHandlers = Stream::empty;
@@ -53,6 +53,12 @@ public Pipelinr with(
5353
return this;
5454
}
5555

56+
public Pipelinr with(Command.Router router) {
57+
checkArgument(router, "Router must not be null");
58+
this.router = router;
59+
return this;
60+
}
61+
5662
public <R, C extends Command<R>> R send(C command) {
5763
checkArgument(command, "Command must not be null");
5864

@@ -114,13 +120,13 @@ public <C extends Command<R>, R> Command.Handler<C, R> route(C command) {
114120
List<Command.Handler> matchingHandlers =
115121
commandHandlers.supply().filter(handler -> handler.matches(command)).collect(toList());
116122

117-
boolean noMatches = matchingHandlers.isEmpty();
118-
if (noMatches) {
123+
boolean noHandlers = matchingHandlers.isEmpty();
124+
if (noHandlers) {
119125
throw new CommandHandlerNotFoundException(command);
120126
}
121127

122-
boolean moreThanOneMatch = matchingHandlers.size() > 1;
123-
if (moreThanOneMatch) {
128+
boolean multipleHandlers = matchingHandlers.size() > 1;
129+
if (multipleHandlers) {
124130
throw new CommandHasMultipleHandlersException(command, matchingHandlers);
125131
}
126132

0 commit comments

Comments
 (0)