Skip to content

Commit 6c9afb2

Browse files
author
nicolaiparlog
committed
Let all transforming collection constructors test for null arguments
1 parent 835d53e commit 6c9afb2

File tree

6 files changed

+26
-4
lines changed

6 files changed

+26
-4
lines changed

src/main/java/org/codefx/libfx/collection/transform/EqualityTransformingMap.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ public static <K> Builder<K> withUnspecifiedKeyType() {
145145
* @return a new builder
146146
*/
147147
public static <K> Builder<K> withKeyType(Class<? super K> keyTypeToken) {
148+
Objects.requireNonNull(keyTypeToken, "The argument 'keyTypeToken' must not be null.");
148149
return new Builder<>(keyTypeToken);
149150
}
150151

@@ -217,6 +218,8 @@ static class EqHash<K> {
217218
private final K outerKey;
218219

219220
private EqHash(EqualityTransformingMap<K, ?> transformingMap, K outerKey) {
221+
assert transformingMap != null : "The argument 'transformingMap' must not be null.";
222+
220223
this.transformingMap = transformingMap;
221224
this.outerKey = outerKey;
222225
}
@@ -289,6 +292,7 @@ public Builder<K> withInnerMap(Supplier<Map<?, ?>> innerMapConstructor) {
289292
* @return this builder
290293
*/
291294
public Builder<K> withEqualsHandlingNull(BiPredicate<? super K, ? super K> equals) {
295+
Objects.requireNonNull(equals, "The argument 'equals' must not be null.");
292296
this.equals = equals;
293297
return this;
294298
}
@@ -299,6 +303,7 @@ public Builder<K> withEqualsHandlingNull(BiPredicate<? super K, ? super K> equal
299303
* @return this builder
300304
*/
301305
public Builder<K> withEquals(BiPredicate<? super K, ? super K> equals) {
306+
Objects.requireNonNull(equals, "The argument 'equals' must not be null.");
302307
return withEqualsHandlingNull(makeNullSafe(equals));
303308
}
304309

@@ -319,6 +324,7 @@ public Builder<K> withEquals(BiPredicate<? super K, ? super K> equals) {
319324
* @return this builder
320325
*/
321326
public Builder<K> withHashHandlingNull(ToIntFunction<? super K> hash) {
327+
Objects.requireNonNull(hash, "The argument 'hash' must not be null.");
322328
this.hash = hash;
323329
return this;
324330
}
@@ -329,6 +335,7 @@ public Builder<K> withHashHandlingNull(ToIntFunction<? super K> hash) {
329335
* @return this builder
330336
*/
331337
public Builder<K> withHash(ToIntFunction<? super K> hash) {
338+
Objects.requireNonNull(hash, "The argument 'hash' must not be null.");
332339
return withHashHandlingNull(makeNullSafe(hash));
333340
}
334341

src/main/java/org/codefx/libfx/collection/transform/OptionalTransformingCollection.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,11 @@ public final class OptionalTransformingCollection<E> extends AbstractTransformin
6262
*/
6363
public OptionalTransformingCollection(
6464
Collection<Optional<E>> innerCollection,
65-
Class<? super E> outerTypeToken, E outerDefaultElement) {
65+
Class<? super E> outerTypeToken,
66+
E outerDefaultElement) {
6667
Objects.requireNonNull(innerCollection, "The argument 'innerCollection' must not be null.");
6768
Objects.requireNonNull(outerTypeToken, "The argument 'outerTypeToken' must not be null.");
69+
// 'outerDefaultElement' can be null
6870

6971
this.innerCollection = innerCollection;
7072
this.outerTypeToken = outerTypeToken;

src/main/java/org/codefx/libfx/collection/transform/OptionalTransformingList.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,11 @@ public final class OptionalTransformingList<E> extends AbstractTransformingList<
6363
*/
6464
public OptionalTransformingList(
6565
List<Optional<E>> innerList,
66-
Class<? super E> outerTypeToken, E outerDefaultElement) {
66+
Class<? super E> outerTypeToken,
67+
E outerDefaultElement) {
6768
Objects.requireNonNull(innerList, "The argument 'innerList' must not be null.");
6869
Objects.requireNonNull(outerTypeToken, "The argument 'outerTypeToken' must not be null.");
70+
// 'outerDefaultElement' can be null
6971

7072
this.innerList = innerList;
7173
this.outerTypeToken = outerTypeToken;

src/main/java/org/codefx/libfx/collection/transform/OptionalTransformingSet.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,11 @@ public final class OptionalTransformingSet<E> extends AbstractTransformingSet<Op
6363
*/
6464
public OptionalTransformingSet(
6565
Set<Optional<E>> innerSet,
66-
Class<? super E> outerTypeToken, E outerDefaultElement) {
66+
Class<? super E> outerTypeToken,
67+
E outerDefaultElement) {
6768
Objects.requireNonNull(innerSet, "The argument 'innerSet' must not be null.");
6869
Objects.requireNonNull(outerTypeToken, "The argument 'outerTypeToken' must not be null.");
70+
// 'outerDefaultElement' can be null
6971

7072
this.innerSet = innerSet;
7173
this.outerTypeToken = outerTypeToken;

src/main/java/org/codefx/libfx/collection/transform/TransformingIterator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ public final class TransformingIterator<I, O> extends AbstractTransformingIterat
4040
* transforms elements from the inner type {@code I} to the outer type {@code O}
4141
*/
4242
public TransformingIterator(Iterator<I> innerIterator, Function<I, O> transformToOuter) {
43-
4443
Objects.requireNonNull(innerIterator, "The argument 'innerIterator' must not be null.");
4544
Objects.requireNonNull(transformToOuter, "The argument 'transformToOuter' must not be null.");
4645

src/main/java/org/codefx/libfx/collection/transform/TransformingMap.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,16 @@ public TransformingMap(
9494
Class<IV> innerValueTypeToken, Function<IV, OV> transformToOuterValue,
9595
Class<OV> outerValueTypeToken, Function<OV, IV> transformToInnerValue) {
9696

97+
Objects.requireNonNull(innerMap, "The argument 'innerMap' must not be null.");
98+
Objects.requireNonNull(innerKeyTypeToken, "The argument 'innerKeyTypeToken' must not be null.");
99+
Objects.requireNonNull(transformToOuterKey, "The argument 'transformToOuterKey' must not be null.");
100+
Objects.requireNonNull(outerKeyTypeToken, "The argument 'outerKeyTypeToken' must not be null.");
101+
Objects.requireNonNull(transformToInnerKey, "The argument 'transformToInnerKey' must not be null.");
102+
Objects.requireNonNull(innerValueTypeToken, "The argument 'innerValueTypeToken' must not be null.");
103+
Objects.requireNonNull(transformToOuterValue, "The argument 'transformToOuterValue' must not be null.");
104+
Objects.requireNonNull(outerValueTypeToken, "The argument 'outerValueTypeToken' must not be null.");
105+
Objects.requireNonNull(transformToInnerValue, "The argument 'transformToInnerValue' must not be null.");
106+
97107
this.innerMap = innerMap;
98108
this.outerKeyTypeToken = outerKeyTypeToken;
99109
this.innerKeyTypeToken = innerKeyTypeToken;

0 commit comments

Comments
 (0)