All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.pkts.packet.PreConditions Maven / Gradle / Ivy

package io.pkts.packet;

import java.util.Collection;

/**
 * Note: as pkts.io will move to sniceio instead, we will use the PreConditions class
 * that exists within sniceio-commons. The current one within pkts.io is very SIP focused
 * and since we really cannot use it for the general use case, and since the port to pkts.io will
 * be breaking changes and as such, requires a major version bump, we will copy paste the one from
 * sniceio-commons to here for now. Not great but better than writing manual "asserts" all the time.
 */
public class PreConditions {
    private PreConditions() {
    }

    public static  void assertNull(final T reference, final String msg) throws IllegalArgumentException {
        if (reference != null) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static  void assertNull(final T reference) throws IllegalArgumentException {
        assertNull(reference, "Value must be null");
    }

    public static  T assertNotNull(final T reference, final String msg) throws IllegalArgumentException {
        if (reference == null) {
            throw new IllegalArgumentException(msg);
        } else {
            return reference;
        }
    }

    public static  T assertNotNull(final T reference) throws IllegalArgumentException {
        return assertNotNull(reference, "Value cannot be null");
    }

    public static String assertNotEmpty(final String reference) throws IllegalArgumentException {
        return assertNotEmpty(reference, "The argument cannot be null or the empty string");
    }

    public static String assertNotEmpty(final String reference, final String msg) throws IllegalArgumentException {
        if (reference != null && !reference.isEmpty()) {
            return reference;
        } else {
            throw new IllegalArgumentException(msg);
        }
    }

    public static  Collection assertCollectionNotEmpty(final Collection reference) throws IllegalArgumentException {
        return assertCollectionNotEmpty(reference, "The argument cannot be null or an empty collection");
    }

    public static  Collection assertCollectionNotEmpty(final Collection reference, final String msg) throws IllegalArgumentException {
        if (reference != null && !reference.isEmpty()) {
            return reference;
        } else {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void assertArgument(final boolean expression, final String msg) throws IllegalArgumentException {
        if (!expression) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void assertArgument(final boolean expression) throws IllegalArgumentException {
        if (!expression) {
            throw new IllegalArgumentException();
        }
    }

    public static void assertArray(final byte[] array, final int offset, final int length, final String msg) throws IllegalArgumentException {
        if (array == null) {
            throw new IllegalArgumentException(msg);
        } else {
            assertArrayBoundaries(array.length, offset, length, msg);
        }
    }

    public static void assertArray(final byte[] array) throws IllegalArgumentException {
        if (array == null) {
            throw new IllegalArgumentException("The byte array cannot be null");
        } else {
            assertArray(array, 0, array.length);
        }
    }

    private static void assertArrayBoundaries(final int arraySize, final int offset, final int length, final String msg) throws IllegalArgumentException {
        if (length > arraySize || offset < 0 || offset != 0 && offset >= arraySize || offset + length > arraySize || length < 0) {
            throw new IllegalArgumentException(msg);
        }
    }

    public static void assertArray(final byte[] array, final int offset, final int length) throws IllegalArgumentException {
        assertArray(array, offset, length, "The byte-array and the offset and/or length does not match up");
    }

    public static  T ensureNotNull(final T reference, final String msg) throws IllegalArgumentException {
        if (reference == null) {
            throw new IllegalArgumentException(msg);
        } else {
            return reference;
        }
    }

    public static  T ensureNotNull(final T reference) throws IllegalArgumentException {
        if (reference == null) {
            throw new IllegalArgumentException("Value cannot be null");
        } else {
            return reference;
        }
    }

    public static String ensureNotEmpty(final String reference, final String msg) throws IllegalArgumentException {
        if (reference != null && !reference.isEmpty()) {
            return reference;
        } else {
            throw new IllegalArgumentException(msg);
        }
    }

    public static boolean checkIfEmpty(final String string) {
        return string == null || string.isEmpty();
    }

    public static boolean checkIfNotEmpty(final String string) {
        return !checkIfEmpty(string);
    }

    public static  T ifNull(final T reference, final T defaultValue) {
        return reference == null ? defaultValue : reference;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy