| 1 | package com.github.dakusui.actionunit.actions; | |
| 2 | ||
| 3 | import com.github.dakusui.actionunit.core.Action; | |
| 4 | ||
| 5 | import java.util.Collections; | |
| 6 | import java.util.Formatter; | |
| 7 | import java.util.List; | |
| 8 | ||
| 9 | import static java.util.Objects.requireNonNull; | |
| 10 | ||
| 11 | public interface Composite extends Action { | |
| 12 | List<Action> children(); | |
| 13 | ||
| 14 | boolean isParallel(); | |
| 15 | ||
| 16 | @Override | |
| 17 | default void formatTo(Formatter formatter, int flags, int width, int precision) { | |
| 18 | formatter.format( | |
| 19 | "do %s", | |
| 20 |
1
1. formatTo : negated conditional → KILLED |
isParallel() |
| 21 | ? "parallelly" | |
| 22 | : "sequentially" | |
| 23 | ); | |
| 24 | } | |
| 25 | ||
| 26 | class Builder { | |
| 27 | private boolean parallel; | |
| 28 | private final List<Action> actions; | |
| 29 | ||
| 30 | public Builder(List<Action> actions) { | |
| 31 | this.actions = actions; | |
| 32 | this.sequential(); | |
| 33 | } | |
| 34 | ||
| 35 | public Builder parallel() { | |
| 36 | this.parallel = true; | |
| 37 |
1
1. parallel : replaced return value with null for com/github/dakusui/actionunit/actions/Composite$Builder::parallel → KILLED |
return this; |
| 38 | } | |
| 39 | ||
| 40 | public Builder sequential() { | |
| 41 | this.parallel = false; | |
| 42 |
1
1. sequential : replaced return value with null for com/github/dakusui/actionunit/actions/Composite$Builder::sequential → SURVIVED |
return this; |
| 43 | } | |
| 44 | ||
| 45 | public Composite build() { | |
| 46 |
1
1. build : replaced return value with null for com/github/dakusui/actionunit/actions/Composite$Builder::build → KILLED |
return new Impl(actions, parallel); |
| 47 | } | |
| 48 | } | |
| 49 | ||
| 50 | class Impl implements Composite { | |
| 51 | private final List<Action> actions; | |
| 52 | private final boolean parallel; | |
| 53 | ||
| 54 | protected Impl(List<Action> actions, boolean parallel) { | |
| 55 | this.actions = requireNonNull(actions); | |
| 56 | this.parallel = parallel; | |
| 57 | } | |
| 58 | ||
| 59 | @Override | |
| 60 | public List<Action> children() { | |
| 61 |
1
1. children : replaced return value with Collections.emptyList for com/github/dakusui/actionunit/actions/Composite$Impl::children → KILLED |
return Collections.unmodifiableList(actions); |
| 62 | } | |
| 63 | ||
| 64 | @Override | |
| 65 | public void accept(Visitor visitor) { | |
| 66 |
1
1. accept : removed call to com/github/dakusui/actionunit/core/Action$Visitor::visit → KILLED |
visitor.visit(this); |
| 67 | } | |
| 68 | ||
| 69 | @Override | |
| 70 | public boolean isParallel() { | |
| 71 |
2
1. isParallel : replaced boolean return with false for com/github/dakusui/actionunit/actions/Composite$Impl::isParallel → KILLED 2. isParallel : replaced boolean return with true for com/github/dakusui/actionunit/actions/Composite$Impl::isParallel → KILLED |
return this.parallel; |
| 72 | } | |
| 73 | } | |
| 74 | } | |
Mutations | ||
| 20 |
1.1 |
|
| 37 |
1.1 |
|
| 42 |
1.1 |
|
| 46 |
1.1 |
|
| 61 |
1.1 |
|
| 66 |
1.1 |
|
| 71 |
1.1 2.2 |