aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/DesignSpaceExplorationBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/DesignSpaceExplorationBuilder.java')
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/DesignSpaceExplorationBuilder.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/DesignSpaceExplorationBuilder.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/DesignSpaceExplorationBuilder.java
new file mode 100644
index 00000000..3855a20a
--- /dev/null
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/DesignSpaceExplorationBuilder.java
@@ -0,0 +1,59 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.store.dse.transition;
7
8import tools.refinery.store.adapter.ModelAdapterBuilder;
9import tools.refinery.store.dse.transition.objectives.Criterion;
10import tools.refinery.store.dse.transition.objectives.Objective;
11
12import java.util.Collection;
13import java.util.List;
14
15public interface DesignSpaceExplorationBuilder extends ModelAdapterBuilder {
16
17 DesignSpaceExplorationBuilder transformation(TransformationRule transformationRuleDefinition);
18 default DesignSpaceExplorationBuilder transformations(TransformationRule... transformationRuleDefinitions) {
19 return transformations(List.of(transformationRuleDefinitions));
20 }
21
22 default DesignSpaceExplorationBuilder transformations(Collection<? extends TransformationRule> transformationRules) {
23 transformationRules.forEach(this::transformation);
24 return this;
25 }
26
27 DesignSpaceExplorationBuilder accept(Criterion criteria);
28
29 default DesignSpaceExplorationBuilder accept(Criterion... criteria) {
30 return accept(List.of(criteria));
31 }
32
33 default DesignSpaceExplorationBuilder accept(Collection<Criterion> criteria) {
34 criteria.forEach(this::accept);
35 return this;
36 }
37
38 DesignSpaceExplorationBuilder exclude(Criterion criteria);
39
40 default DesignSpaceExplorationBuilder exclude(Criterion... criteria) {
41 return exclude(List.of(criteria));
42 }
43
44 default DesignSpaceExplorationBuilder exclude(Collection<Criterion> criteria) {
45 criteria.forEach(this::exclude);
46 return this;
47 }
48
49 DesignSpaceExplorationBuilder objective(Objective objective);
50
51 default DesignSpaceExplorationBuilder objectives(Objective... objectives) {
52 return objectives(List.of(objectives));
53 }
54
55 default DesignSpaceExplorationBuilder objectives(Collection<? extends Objective> objectives) {
56 objectives.forEach(this::objective);
57 return this;
58 }
59}