aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/store-dse/src/main/java/tools/refinery/store/dse/internal/DesignSpaceExplorationBuilderImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/store-dse/src/main/java/tools/refinery/store/dse/internal/DesignSpaceExplorationBuilderImpl.java')
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/internal/DesignSpaceExplorationBuilderImpl.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/internal/DesignSpaceExplorationBuilderImpl.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/internal/DesignSpaceExplorationBuilderImpl.java
new file mode 100644
index 00000000..03508adc
--- /dev/null
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/internal/DesignSpaceExplorationBuilderImpl.java
@@ -0,0 +1,62 @@
1package tools.refinery.store.dse.internal;
2
3import tools.refinery.store.adapter.AbstractModelAdapterBuilder;
4import tools.refinery.store.model.ModelStore;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.query.dnf.RelationalQuery;
7import tools.refinery.store.dse.DesignSpaceExplorationBuilder;
8import tools.refinery.store.dse.Strategy;
9import tools.refinery.store.dse.objectives.Objective;
10
11import java.util.LinkedHashSet;
12import java.util.LinkedList;
13import java.util.List;
14
15public class DesignSpaceExplorationBuilderImpl
16 extends AbstractModelAdapterBuilder<DesignSpaceExplorationStoreAdapterImpl>
17 implements DesignSpaceExplorationBuilder {
18 private final LinkedHashSet<TransformationRule> transformationSpecifications = new LinkedHashSet<>();
19 private final LinkedHashSet<RelationalQuery> globalConstraints = new LinkedHashSet<>();
20 private final List<Objective> objectives = new LinkedList<>();
21 private Strategy strategy;
22
23 @Override
24 protected DesignSpaceExplorationStoreAdapterImpl doBuild(ModelStore store) {
25 return new DesignSpaceExplorationStoreAdapterImpl(store, transformationSpecifications, globalConstraints,
26 objectives, strategy);
27 }
28
29 @Override
30 public DesignSpaceExplorationBuilder transformation(TransformationRule transformationRule) {
31 checkNotConfigured();
32 transformationSpecifications.add(transformationRule);
33 return this;
34 }
35
36 @Override
37 public DesignSpaceExplorationBuilder globalConstraint(RelationalQuery globalConstraint) {
38 checkNotConfigured();
39 globalConstraints.add(globalConstraint);
40 return this;
41 }
42
43 @Override
44 public DesignSpaceExplorationBuilder objective(Objective objective) {
45 checkNotConfigured();
46 objectives.add(objective);
47 return this;
48 }
49
50 @Override
51 public DesignSpaceExplorationBuilder strategy(Strategy strategy) {
52 checkNotConfigured();
53 this.strategy = strategy;
54 return this;
55 }
56
57 @Override
58 protected void doConfigure(ModelStoreBuilder storeBuilder) {
59 storeBuilder.symbols(DesignSpaceExplorationAdapterImpl.NODE_COUNT_SYMBOL);
60 super.doConfigure(storeBuilder);
61 }
62}