diff options
Diffstat (limited to 'subprojects/store/src/main/java/tools/refinery/store/statecoding/internal/StateCoderBuilderImpl.java')
-rw-r--r-- | subprojects/store/src/main/java/tools/refinery/store/statecoding/internal/StateCoderBuilderImpl.java | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/subprojects/store/src/main/java/tools/refinery/store/statecoding/internal/StateCoderBuilderImpl.java b/subprojects/store/src/main/java/tools/refinery/store/statecoding/internal/StateCoderBuilderImpl.java index 05b47c52..eed591e7 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/statecoding/internal/StateCoderBuilderImpl.java +++ b/subprojects/store/src/main/java/tools/refinery/store/statecoding/internal/StateCoderBuilderImpl.java | |||
@@ -5,61 +5,61 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.statecoding.internal; | 6 | package tools.refinery.store.statecoding.internal; |
7 | 7 | ||
8 | import org.eclipse.collections.impl.set.mutable.primitive.IntHashSet; | 8 | import org.eclipse.collections.api.factory.primitive.IntSets; |
9 | import org.eclipse.collections.api.set.primitive.MutableIntSet; | ||
10 | import tools.refinery.store.adapter.AbstractModelAdapterBuilder; | ||
9 | import tools.refinery.store.model.ModelStore; | 11 | import tools.refinery.store.model.ModelStore; |
10 | import tools.refinery.store.model.ModelStoreBuilder; | ||
11 | import tools.refinery.store.representation.AnySymbol; | 12 | import tools.refinery.store.representation.AnySymbol; |
12 | import tools.refinery.store.representation.Symbol; | 13 | import tools.refinery.store.representation.Symbol; |
13 | import tools.refinery.store.statecoding.*; | 14 | import tools.refinery.store.statecoding.StateCodeCalculatorFactory; |
15 | import tools.refinery.store.statecoding.StateCoderBuilder; | ||
16 | import tools.refinery.store.statecoding.StateCoderStoreAdapter; | ||
17 | import tools.refinery.store.statecoding.StateEquivalenceChecker; | ||
14 | import tools.refinery.store.statecoding.neighbourhood.NeighbourhoodCalculator; | 18 | import tools.refinery.store.statecoding.neighbourhood.NeighbourhoodCalculator; |
15 | import tools.refinery.store.statecoding.stateequivalence.StateEquivalenceCheckerImpl; | 19 | import tools.refinery.store.statecoding.stateequivalence.StateEquivalenceCheckerImpl; |
16 | import tools.refinery.store.tuple.Tuple1; | 20 | import tools.refinery.store.tuple.Tuple1; |
17 | 21 | ||
18 | import java.util.*; | 22 | import java.util.HashSet; |
23 | import java.util.LinkedHashSet; | ||
24 | import java.util.Set; | ||
19 | 25 | ||
20 | public class StateCoderBuilderImpl implements StateCoderBuilder { | 26 | public class StateCoderBuilderImpl extends AbstractModelAdapterBuilder<StateCoderStoreAdapter> |
21 | Set<AnySymbol> excluded = new HashSet<>(); | 27 | implements StateCoderBuilder { |
22 | IntHashSet individuals = new IntHashSet(); | 28 | private final Set<AnySymbol> excluded = new HashSet<>(); |
23 | 29 | private final MutableIntSet individuals = IntSets.mutable.empty(); | |
24 | StateCodeCalculatorFactory calculator = NeighbourhoodCalculator::new; | 30 | private StateCodeCalculatorFactory calculator = NeighbourhoodCalculator::new; |
25 | StateEquivalenceChecker checker = new StateEquivalenceCheckerImpl(); | 31 | private StateEquivalenceChecker checker = new StateEquivalenceCheckerImpl(); |
26 | 32 | ||
27 | @Override | 33 | @Override |
28 | public StateCoderBuilder exclude(AnySymbol symbol) { | 34 | public StateCoderBuilder exclude(AnySymbol symbol) { |
35 | checkNotConfigured(); | ||
29 | excluded.add(symbol); | 36 | excluded.add(symbol); |
30 | return this; | 37 | return this; |
31 | } | 38 | } |
32 | 39 | ||
33 | @Override | 40 | @Override |
34 | public StateCoderBuilder individual(Tuple1 tuple) { | 41 | public StateCoderBuilder individual(Tuple1 tuple) { |
42 | checkNotConfigured(); | ||
35 | individuals.add(tuple.get(0)); | 43 | individuals.add(tuple.get(0)); |
36 | return this; | 44 | return this; |
37 | } | 45 | } |
38 | 46 | ||
39 | @Override | 47 | @Override |
40 | public StateCoderBuilder stateEquivalenceChecker(StateEquivalenceChecker stateEquivalenceChecker) { | 48 | public StateCoderBuilder stateEquivalenceChecker(StateEquivalenceChecker stateEquivalenceChecker) { |
49 | checkNotConfigured(); | ||
41 | this.checker = stateEquivalenceChecker; | 50 | this.checker = stateEquivalenceChecker; |
42 | return this; | 51 | return this; |
43 | } | 52 | } |
44 | 53 | ||
45 | @Override | 54 | @Override |
46 | public StateCoderBuilder stateCodeCalculatorFactory(StateCodeCalculatorFactory codeCalculatorFactory) { | 55 | public StateCoderBuilder stateCodeCalculatorFactory(StateCodeCalculatorFactory codeCalculatorFactory) { |
56 | checkNotConfigured(); | ||
47 | this.calculator = codeCalculatorFactory; | 57 | this.calculator = codeCalculatorFactory; |
48 | return this; | 58 | return this; |
49 | } | 59 | } |
50 | 60 | ||
51 | @Override | 61 | @Override |
52 | public boolean isConfigured() { | 62 | protected StateCoderStoreAdapter doBuild(ModelStore store) { |
53 | return true; | ||
54 | } | ||
55 | |||
56 | @Override | ||
57 | public void configure(ModelStoreBuilder storeBuilder) { | ||
58 | // It does not modify the build process | ||
59 | } | ||
60 | |||
61 | @Override | ||
62 | public StateCoderStoreAdapter build(ModelStore store) { | ||
63 | Set<Symbol<?>> symbols = new LinkedHashSet<>(); | 63 | Set<Symbol<?>> symbols = new LinkedHashSet<>(); |
64 | for (AnySymbol symbol : store.getSymbols()) { | 64 | for (AnySymbol symbol : store.getSymbols()) { |
65 | if (!excluded.contains(symbol) && (symbol instanceof Symbol<?> typed)) { | 65 | if (!excluded.contains(symbol) && (symbol instanceof Symbol<?> typed)) { |