package com.github.dreamhead.moco.util;
import com.google.common.collect.ImmutableList;
import java.util.Arrays;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.ImmutableList.of;
public final class Iterables {
public static <T> Iterable<T> asIterable(final T handler, final T[] handlers) {
checkNotNull(handler);
checkNotNull(handlers);
if (handlers.length == 0) {
return of(handler);
}
return ImmutableList.<T>builder()
.add(handler)
.add(handlers)
.build();
}
public static <T> Iterable<T> asIterable(final T handler, final T handler2, final T[] handlers) {
checkNotNull(handler);
checkNotNull(handler2);
checkNotNull(handlers);
if (handlers.length == 0) {
return of(handler, handler2);
}
return ImmutableList.<T>builder()
.add(handler)
.add(handler2)
.add(handlers)
.build();
}
public static <T> T head(final T[] elements) {
checkNotNull(elements);
if (elements.length == 0) {
return null;
}
return elements[0];
}
public static <T> T[] tail(final T[] elements) {
checkNotNull(elements);
return Arrays.copyOfRange(elements, 1, elements.length);
}
private Iterables() {
}
}