@Override public void areDifferentThan() { currentGroup.modify(current -> { // create two instances, and add them to the group current.add(create()); current.add(create()); // create two instances using a serialization roundtrip, and add them to the group current.add(reserialize(create())); current.add(reserialize(create())); // add this group to the list of all groups allGroups.add(current); // and return a new blank group for the next call return new ArrayList<>(); }); } };
@Override public R modify(Function<? super R, ? extends R> mutator) { Objects.requireNonNull(mutator); Box.Nullable<R> result = Box.Nullable.of(null); delegate.modify(input -> { R unmappedResult = mutator.apply(converter.convertNonNull(input)); result.set(unmappedResult); return converter.revertNonNull(unmappedResult); }); return result.get(); }
/** Shortcut for doing a set() on the result of a get(). */ @Override public R modify(Function<? super R, ? extends R> mutator) { Box.Nullable<R> result = Box.Nullable.of(null); delegate.modify(input -> { R unmappedResult = mutator.apply(converter.convertNonNull(input)); result.set(unmappedResult); return converter.revertNonNull(unmappedResult); }); return result.get(); }