| 1 | package com.renomad.minum.utils; | |
| 2 | ||
| 3 | /** | |
| 4 | * Utilities for asserting invariants within the code. | |
| 5 | * <br> | |
| 6 | * The purpose here is to make firm statements about the code. This is | |
| 7 | * to help document the code, (e.g. at this point, x is the sum of the ...), | |
| 8 | * to include testing mindset in the code, and to guard against adding | |
| 9 | * bugs during maintenance. | |
| 10 | */ | |
| 11 | public final class Invariants { | |
| 12 | ||
| 13 | private Invariants() { | |
| 14 | // cannot construct | |
| 15 | } | |
| 16 | ||
| 17 | /** | |
| 18 | * Specify something which must be true. | |
| 19 | * <p> | |
| 20 | * Throws an {@link InvariantException} if false | |
| 21 | * @param predicate the boolean expression that must be true at this point | |
| 22 | * @param message a message that will be included in the exception if this is false | |
| 23 | */ | |
| 24 | public static void mustBeTrue(boolean predicate, String message) { | |
| 25 |
1
1. mustBeTrue : negated conditional → KILLED |
if (!predicate) { |
| 26 | throw new InvariantException(message); | |
| 27 | } | |
| 28 | } | |
| 29 | ||
| 30 | /** | |
| 31 | * Specify something which must be false | |
| 32 | * <p> | |
| 33 | * Throws an {@link InvariantException} if true | |
| 34 | * @param predicate the boolean expression that must be false at this point | |
| 35 | * @param message a message that will be included in the exception if this is true | |
| 36 | */ | |
| 37 | public static void mustBeFalse(boolean predicate, String message) { | |
| 38 |
1
1. mustBeFalse : negated conditional → KILLED |
if (predicate) { |
| 39 | throw new InvariantException(message); | |
| 40 | } | |
| 41 | } | |
| 42 | ||
| 43 | /** | |
| 44 | * specifies that the parameter must be not null. | |
| 45 | * <p> | |
| 46 | * Throws an {@link InvariantException} if null. | |
| 47 | * @return the object if not null | |
| 48 | */ | |
| 49 | public static <T> T mustNotBeNull(T object) { | |
| 50 |
1
1. mustNotBeNull : negated conditional → KILLED |
if (object == null) { |
| 51 | throw new InvariantException("value must not be null"); | |
| 52 | } else { | |
| 53 |
1
1. mustNotBeNull : replaced return value with null for com/renomad/minum/utils/Invariants::mustNotBeNull → TIMED_OUT |
return object; |
| 54 | } | |
| 55 | } | |
| 56 | } | |
Mutations | ||
| 25 |
1.1 |
|
| 38 |
1.1 |
|
| 50 |
1.1 |
|
| 53 |
1.1 |