package com.googlecode.totallylazy;
import com.googlecode.totallylazy.predicates.LogicalPredicate;
import com.googlecode.totallylazy.predicates.Predicate;
import java.util.List;
import static com.googlecode.totallylazy.Sequences.sequence;
public class Arrays {
public static <T> LogicalPredicate<T[]> exists(final Predicate<? super T> predicate) {
return new LogicalPredicate<T[]>() {
public boolean matches(T[] array) {
return sequence(array).exists(predicate);
}
};
}
public static <T> LogicalPredicate<T[]> empty() {
return new LogicalPredicate<T[]>() {
public boolean matches(T[] array) {
return array.length == 0;
}
};
}
@SafeVarargs
public static <T> List<T> list(T... values) {
return Lists.list(values);
}
public static <T> boolean containsIndex(T[] array, int index) {
return index < array.length;
}
@SafeVarargs
public static <T> T[] array(T ... values) {
return values;
}
public static <T> boolean equalTo(Third<T> ts, Iterable<?> obj) {
throw new UnsupportedOperationException();
}
public static <T> boolean isEmpty(T[] array) {return array.length == 0;}
public static <T> T head(T[] array) {
return array[0];
}
public static <T> T[] tail(T[] array) {
return java.util.Arrays.copyOfRange(array, 1, array.length);
}
public static Character[] characters(String value) {
Character[] result = new Character[value.length()];
for (int i = 0; i < value.length(); i++) {
result[i] = value.charAt(i);
}
return result;
}
}