Skip to content

Commit e9a86ce

Browse files
Attempt to fix precondition issue
1 parent 209fabc commit e9a86ce

2 files changed

Lines changed: 31 additions & 26 deletions

File tree

‎src/main/java/com/abilityapi/sequenceapi/SequenceManager.java‎

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.UUID;
77
import java.util.function.Predicate;
88

9-
import static com.abilityapi.sequenceapi.SequencePreconditions.checkOriginType;
9+
import static com.abilityapi.sequenceapi.SequencePreconditions.checkContextNotNull;
1010
import static com.google.common.base.Preconditions.checkNotNull;
1111

1212
/**
@@ -40,9 +40,9 @@ public SequenceManager(final SequenceRegistry<T> sequenceRegistry) {
4040
public void invokeObserver(final T event, final SequenceContext sequenceContext) {
4141
checkNotNull(event);
4242
checkNotNull(sequenceContext);
43-
checkOriginType(sequenceContext, SequenceContext.ID, UUID.class);
43+
SequencePreconditions.checkContextType(sequenceContext, SequenceContext.ID, UUID.class);
4444

45-
this.sequences.get((UUID) sequenceContext.getId()).removeIf(sequence -> {
45+
this.sequences.get(sequenceContext.getId()).removeIf(sequence -> {
4646
if (this.blockedSequences.containsEntry(sequenceContext.getId(), sequence.getTrigger())) return true;
4747

4848
return this._invokeObserver(event, sequence, sequenceContext);
@@ -69,9 +69,9 @@ public void invokeObserverIf(final T event, final SequenceContext sequenceContex
6969
checkNotNull(event);
7070
checkNotNull(sequenceContext);
7171
checkNotNull(predicate);
72-
checkOriginType(sequenceContext, SequenceContext.ID, UUID.class);
72+
SequencePreconditions.checkContextType(sequenceContext, SequenceContext.ID, UUID.class);
7373

74-
this.sequences.get((UUID) sequenceContext.getId()).removeIf(sequence -> {
74+
this.sequences.get(sequenceContext.getId()).removeIf(sequence -> {
7575
if (!predicate.test(sequence)) return false;
7676
if (this.blockedSequences.containsEntry(sequenceContext.getId(), sequence.getTrigger())) return true;
7777

@@ -95,9 +95,9 @@ public void invokeObserverIf(final T event, final SequenceContext sequenceContex
9595
*/
9696
public void updateScheduler(final SequenceContext sequenceContext) {
9797
checkNotNull(sequenceContext);
98-
checkOriginType(sequenceContext, SequenceContext.ID, UUID.class);
98+
SequencePreconditions.checkContextType(sequenceContext, SequenceContext.ID, UUID.class);
9999

100-
this.sequences.get((UUID) sequenceContext.getId()).removeIf(sequence -> {
100+
this.sequences.get(sequenceContext.getId()).removeIf(sequence -> {
101101
if (this.blockedSequences.containsEntry(sequenceContext.getId(), sequence.getTrigger())) return true;
102102

103103
return this._invokeScheduler(sequence, sequenceContext);
@@ -118,9 +118,9 @@ public void updateScheduler(final SequenceContext sequenceContext) {
118118
public void updateSchedulerIf(final SequenceContext sequenceContext, final Predicate<Object> predicate) {
119119
checkNotNull(sequenceContext);
120120
checkNotNull(predicate);
121-
checkOriginType(sequenceContext, SequenceContext.ID, UUID.class);
121+
SequencePreconditions.checkContextType(sequenceContext, SequenceContext.ID, UUID.class);
122122

123-
this.sequences.get((UUID) sequenceContext.getId()).removeIf(sequence -> {
123+
this.sequences.get(sequenceContext.getId()).removeIf(sequence -> {
124124
if (predicate.test(sequence)) return false;
125125
if (this.blockedSequences.containsEntry(sequenceContext.getId(), sequence.getTrigger())) return true;
126126

@@ -143,11 +143,11 @@ public void updateSchedulerIf(final SequenceContext sequenceContext, final Predi
143143
*/
144144
public void block(final SequenceContext sequenceContext) {
145145
checkNotNull(sequenceContext);
146-
checkOriginType(sequenceContext, SequenceContext.ROOT, Class.class);
147-
checkOriginType(sequenceContext, SequenceContext.ID, UUID.class);
146+
checkContextNotNull(sequenceContext, SequenceContext.ROOT);
147+
SequencePreconditions.checkContextType(sequenceContext, SequenceContext.ID, UUID.class);
148148

149149
if (this.blockedSequences.containsEntry(sequenceContext.getId(), sequenceContext.getRoot())) return;
150-
this.blockedSequences.put((UUID) sequenceContext.getId(), (Class<? extends T>) sequenceContext.getRoot());
150+
this.blockedSequences.put(sequenceContext.getId(), sequenceContext.getRoot());
151151
}
152152

153153
/**
@@ -165,11 +165,11 @@ public void block(final SequenceContext sequenceContext) {
165165
*/
166166
public void unblock(final SequenceContext sequenceContext) {
167167
checkNotNull(sequenceContext);
168-
checkOriginType(sequenceContext, SequenceContext.ROOT, Class.class);
169-
checkOriginType(sequenceContext, SequenceContext.ID, UUID.class);
168+
checkContextNotNull(sequenceContext, SequenceContext.ROOT);
169+
SequencePreconditions.checkContextType(sequenceContext, SequenceContext.ID, UUID.class);
170170

171171
if (!this.blockedSequences.containsEntry(sequenceContext.getId(), sequenceContext.getRoot())) return;
172-
this.blockedSequences.put((UUID) sequenceContext.getId(), (Class<? extends T>) sequenceContext.getRoot());
172+
this.blockedSequences.put(sequenceContext.getId(), sequenceContext.getRoot());
173173
}
174174

175175
/**
@@ -203,9 +203,9 @@ public void clean(boolean force) {
203203
*/
204204
public void clean(final SequenceContext sequenceContext, boolean force) {
205205
checkNotNull(sequenceContext);
206-
checkOriginType(sequenceContext, SequenceContext.ID, UUID.class);
206+
SequencePreconditions.checkContextType(sequenceContext, SequenceContext.ID, UUID.class);
207207

208-
this.sequences.get((UUID) sequenceContext.getId()).removeIf(sequence ->
208+
this.sequences.get(sequenceContext.getId()).removeIf(sequence ->
209209
force || sequence.getState().equals(Sequence.State.EXPIRED));
210210
}
211211

@@ -270,7 +270,7 @@ public void _createBlueprints(final T event, final SequenceContext sequenceConte
270270

271271
// 1. Check for matching sequence.
272272

273-
if (this.sequences.get((UUID) sequenceContext.getId()).stream()
273+
if (this.sequences.get(sequenceContext.getId()).stream()
274274
.anyMatch(playerSequence -> playerSequence.getBlueprint()
275275
.equals(sequenceBlueprint))) continue;
276276

@@ -283,7 +283,7 @@ public void _createBlueprints(final T event, final SequenceContext sequenceConte
283283
continue;
284284
}
285285

286-
this.sequences.put((UUID) sequenceContext.getId(), sequence);
286+
this.sequences.put(sequenceContext.getId(), sequence);
287287
}
288288
}
289289
}

‎src/main/java/com/abilityapi/sequenceapi/SequencePreconditions.java‎

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,24 @@
44

55
public class SequencePreconditions {
66

7-
public static <T> void checkOriginType(final SequenceContext sequenceContext,
8-
final String key,
9-
final Class<? extends T> type) throws NoSuchElementException {
7+
public static void checkContextNotNull(final SequenceContext sequenceContext,
8+
final String key) {
9+
if (sequenceContext.get(key) == null) throw new NoSuchElementException("Element for key '" + key + "' was null.");
10+
}
11+
12+
public static void checkContextType(final SequenceContext sequenceContext,
13+
final String key,
14+
final Class<?> type) throws NoSuchElementException {
1015
if (sequenceContext.get(key) == null) throw new NoSuchElementException("Element for key '" + key + "' was null.");
1116

1217
if (sequenceContext.get(key).getClass().isAssignableFrom(type))
1318
throw new NoSuchElementException("Element for key '" + key + "' was not found inside { " + sequenceContext.toString() + " }.");
1419
}
1520

16-
public static <T> void checkOriginType(final SequenceContext sequenceContext,
17-
final String key,
18-
final Class<? extends T> type,
19-
final String message) throws NoSuchElementException {
21+
public static void checkContextType(final SequenceContext sequenceContext,
22+
final String key,
23+
final Class<?> type,
24+
final String message) throws NoSuchElementException {
2025
if (sequenceContext.get(key) == null) throw new NoSuchElementException("Element for key '" + key + "' was null.");
2126

2227
if (sequenceContext.get(key).getClass().isAssignableFrom(type))

0 commit comments

Comments
 (0)