package sk.stuba.fiit.perconik.utilities; import java.util.Collection; import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; public final class MorePreconditions { private MorePreconditions() {} public static <T extends CharSequence> T checkNotNullOrEmpty(final T reference) { checkArgument(checkNotNull(reference).length() > 0); return reference; } public static <T extends CharSequence> T checkNotNullOrEmpty(final T reference, @Nullable final Object message) { checkArgument(checkNotNull(reference, message).length() > 0, message); return reference; } public static <T extends CharSequence> T checkNotNullOrEmpty(final T reference, @Nullable final String format, @Nullable final Object ... args) { checkArgument(checkNotNull(reference, format, args).length() > 0, format, args); return reference; } public static <T extends Collection<?>> T checkNotNullOrEmpty(final T reference) { checkArgument(!checkNotNull(reference).isEmpty()); return reference; } public static <T extends Collection<?>> T checkNotNullOrEmpty(final T reference, @Nullable final Object message) { checkArgument(!checkNotNull(reference, message).isEmpty(), message); return reference; } public static <T extends Collection<?>> T checkNotNullOrEmpty(final T reference, @Nullable final String format, @Nullable final Object ... args) { checkArgument(!checkNotNull(reference, format, args).isEmpty(), format, args); return reference; } public static <T> T checkNotNullAsState(final T reference) { checkState(reference != null); return reference; } public static <T> T checkNotNullAsState(final T reference, @Nullable final Object message) { checkState(reference != null, message); return reference; } public static <T> T checkNotNullAsState(final T reference, @Nullable final String format, @Nullable final Object ... args) { checkState(reference != null, format, args); return reference; } }