Skip to content

Commit 77fb7a0

Browse files
author
nicolaiparlog
committed
Include more null checks in transforming collections
1 parent 6c9afb2 commit 77fb7a0

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ public O set(int index, O element) {
139139

140140
@Override
141141
public void replaceAll(UnaryOperator<O> operator) {
142+
Objects.requireNonNull(operator, "The argument 'operator' must not be null.");
143+
142144
UnaryOperator<I> operatorOnInner = inner -> transformToInner(operator.apply(transformToOuter(inner)));
143145
getInnerList().replaceAll(operatorOnInner);
144146
}
@@ -153,6 +155,8 @@ public O remove(int index) {
153155

154156
@Override
155157
public void sort(Comparator<? super O> comparator) {
158+
Objects.requireNonNull(comparator, "The argument 'comparator' must not be null.");
159+
156160
Comparator<I> comparatorOfInner = (leftInner, rightInner) ->
157161
comparator.compare(
158162
transformToOuter(leftInner),

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,16 @@ public OV putIfAbsent(OK key, OV value) {
173173

174174
@Override
175175
public void putAll(Map<? extends OK, ? extends OV> outerMap) {
176+
Objects.requireNonNull(outerMap, "The argument 'outerMap' must not be null.");
177+
176178
Map<IK, IV> asInner = new TransformToReadOnlyInnerMap(outerMap);
177179
getInnerMap().putAll(asInner);
178180
}
179181

180182
@Override
181183
public OV compute(OK key, BiFunction<? super OK, ? super OV, ? extends OV> remappingFunction) {
182184
Objects.requireNonNull(remappingFunction, "The argument 'remappingFunction' must not be null.");
185+
183186
return transformToOuterValue(getInnerMap().compute(
184187
transformToInnerKey(key),
185188
transformToInnerKeyValueToValueFunction(remappingFunction)
@@ -189,6 +192,7 @@ public OV compute(OK key, BiFunction<? super OK, ? super OV, ? extends OV> remap
189192
@Override
190193
public OV computeIfAbsent(OK key, Function<? super OK, ? extends OV> mappingFunction) {
191194
Objects.requireNonNull(mappingFunction, "The argument 'mappingFunction' must not be null.");
195+
192196
return transformToOuterValue(getInnerMap().computeIfAbsent(
193197
transformToInnerKey(key),
194198
transformToInnerToKeyValueFunction(mappingFunction)
@@ -198,6 +202,7 @@ public OV computeIfAbsent(OK key, Function<? super OK, ? extends OV> mappingFunc
198202
@Override
199203
public OV computeIfPresent(OK key, BiFunction<? super OK, ? super OV, ? extends OV> remappingFunction) {
200204
Objects.requireNonNull(remappingFunction, "The argument 'remappingFunction' must not be null.");
205+
201206
return transformToOuterValue(getInnerMap().computeIfPresent(
202207
transformToInnerKey(key),
203208
transformToInnerKeyValueToValueFunction(remappingFunction)
@@ -207,6 +212,7 @@ public OV computeIfPresent(OK key, BiFunction<? super OK, ? super OV, ? extends
207212
@Override
208213
public OV merge(OK key, OV value, BiFunction<? super OV, ? super OV, ? extends OV> remappingFunction) {
209214
Objects.requireNonNull(remappingFunction, "The argument 'remappingFunction' must not be null.");
215+
210216
return transformToOuterValue(getInnerMap().merge(
211217
transformToInnerKey(key),
212218
transformToInnerValue(value),
@@ -232,6 +238,8 @@ public boolean replace(OK key, OV oldValue, OV newValue) {
232238

233239
@Override
234240
public void replaceAll(BiFunction<? super OK, ? super OV, ? extends OV> function) {
241+
Objects.requireNonNull(function, "The argument 'function' must not be null.");
242+
235243
getInnerMap().replaceAll(transformToInnerKeyValueToValueFunction(function));
236244
}
237245

@@ -283,6 +291,7 @@ public void clear() {
283291
@Override
284292
public void forEach(BiConsumer<? super OK, ? super OV> action) {
285293
Objects.requireNonNull(action, "The argument 'action' must not be null.");
294+
286295
getInnerMap().forEach(transformToInnerKeyValueConsumer(action));
287296
}
288297

0 commit comments

Comments
 (0)