package net.alcuria.umbracraft.util;
import net.alcuria.umbracraft.listeners.Listener;
import net.alcuria.umbracraft.listeners.TypeListener;
/** Object-level utility functions for parameter validation.
* @author Andrew Keturi */
public final class O {
/** Helpers to invoke listeners while adding null checks
* @author Andrew Keturi */
public static final class L {
public static void $(Listener listener) {
if (listener != null) {
listener.invoke();
}
}
public static <T> void $(TypeListener<T> listener, T arg) {
if (listener != null) {
listener.invoke(arg);
}
}
}
/** Ensures the object is not null. For parameter validation.
* @param <T>
* @param object */
public static <T> T notNull(T object) {
if (object == null) {
throw new NullPointerException("Parameter cannot be null: " + object);
}
return object;
}
/** Ensures the value is positive. For parameter validation.
* @param num */
public static void positive(int num) {
if (num <= 0) {
throw new RuntimeException("Number must be positive: " + num);
}
}
private O() {
throw new InstantiationError("Cannot instantiate class O");
}
}