Skip to content

Commit f283852

Browse files
committed
lassos: cleanup type information
1 parent 80c04b4 commit f283852

File tree

3 files changed

+12
-20
lines changed

3 files changed

+12
-20
lines changed

core/src/main/java/net/automatalib/modelchecking/impl/AbstractLasso.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import net.automatalib.ts.simple.SimpleDTS;
3131
import net.automatalib.word.Word;
3232
import net.automatalib.word.WordBuilder;
33-
import org.checkerframework.checker.nullness.qual.NonNull;
3433
import org.checkerframework.checker.nullness.qual.Nullable;
3534

3635
public abstract class AbstractLasso<I, D> implements Lasso<I, D> {
@@ -62,13 +61,12 @@ public abstract class AbstractLasso<I, D> implements Lasso<I, D> {
6261
public <S> AbstractLasso(DetOutputAutomaton<S, I, ?, D> automaton,
6362
Collection<? extends I> inputs,
6463
int unfoldTimes) {
65-
this(validateLassoShape(automaton, inputs, unfoldTimes), automaton, inputs, unfoldTimes);
64+
this(automaton, validateLassoShape(automaton, inputs, unfoldTimes), inputs, unfoldTimes);
6665
}
6766

6867
// utility constructor to prevent finalizer attacks, see SEI CERT Rule OBJ-11
69-
@SuppressWarnings("PMD.UnusedFormalParameter")
70-
private <S> AbstractLasso(boolean valid,
71-
DetOutputAutomaton<S, I, ?, D> automaton,
68+
private <S> AbstractLasso(DetOutputAutomaton<S, I, ?, D> automaton,
69+
S init,
7270
Collection<? extends I> inputs,
7371
int unfoldTimes) {
7472
// save the original automaton
@@ -86,8 +84,7 @@ private <S> AbstractLasso(boolean valid,
8684
final WordBuilder<I> wb = new WordBuilder<>();
8785

8886
// start visiting the initial state
89-
@SuppressWarnings("nullness") // we have checked non-nullness of the initial state
90-
@NonNull S current = automaton.getInitialState();
87+
S current = init;
9188

9289
// index for the current state
9390
int i = 0;
@@ -212,14 +209,15 @@ public Alphabet<I> getInputAlphabet() {
212209
return getSuccessor(state, input);
213210
}
214211

215-
private static <S, I, D> boolean validateLassoShape(DetOutputAutomaton<S, I, ?, D> automaton,
216-
Collection<? extends I> inputs,
217-
int unfoldTimes) {
212+
private static <S, I, D> S validateLassoShape(DetOutputAutomaton<S, I, ?, D> automaton,
213+
Collection<? extends I> inputs,
214+
int unfoldTimes) {
218215
if (unfoldTimes <= 0) {
219216
throw new AssertionError();
220217
}
221218

222-
if (automaton.getInitialState() == null) {
219+
final S init = automaton.getInitialState();
220+
if (init == null) {
223221
throw new IllegalArgumentException(NO_LASSO);
224222
}
225223

@@ -233,6 +231,6 @@ private static <S, I, D> boolean validateLassoShape(DetOutputAutomaton<S, I, ?,
233231
throw new IllegalArgumentException(NO_LASSO);
234232
}
235233

236-
return true;
234+
return init;
237235
}
238236
}

core/src/main/java/net/automatalib/modelchecking/impl/DFALassoImpl.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import java.util.Collection;
1919

20-
import net.automatalib.automaton.concept.DetOutputAutomaton;
2120
import net.automatalib.automaton.fsa.DFA;
2221
import net.automatalib.modelchecking.Lasso.DFALasso;
2322

@@ -29,9 +28,7 @@
2928
*/
3029
public class DFALassoImpl<I> extends AbstractLasso<I, Boolean> implements DFALasso<I> {
3130

32-
public DFALassoImpl(DetOutputAutomaton<?, I, ?, Boolean> automaton,
33-
Collection<? extends I> inputs,
34-
int unfoldTimes) {
31+
public DFALassoImpl(DFA<?, I> automaton, Collection<? extends I> inputs, int unfoldTimes) {
3532
super(automaton, inputs, unfoldTimes);
3633
}
3734

core/src/main/java/net/automatalib/modelchecking/impl/MealyLassoImpl.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import java.util.Collection;
1919

20-
import net.automatalib.automaton.concept.DetOutputAutomaton;
2120
import net.automatalib.automaton.transducer.MealyMachine;
2221
import net.automatalib.modelchecking.Lasso.MealyLasso;
2322
import net.automatalib.word.Word;
@@ -32,9 +31,7 @@
3231
*/
3332
public class MealyLassoImpl<I, O> extends AbstractLasso<I, Word<O>> implements MealyLasso<I, O> {
3433

35-
public MealyLassoImpl(DetOutputAutomaton<?, I, ?, Word<O>> automaton,
36-
Collection<? extends I> inputs,
37-
int unfoldTimes) {
34+
public MealyLassoImpl(MealyMachine<?, I, ?, O> automaton, Collection<? extends I> inputs, int unfoldTimes) {
3835
super(automaton, inputs, unfoldTimes);
3936
}
4037

0 commit comments

Comments
 (0)