add support for renaming and post processing of csv columns

This commit is contained in:
2019-12-14 18:11:59 +01:00
parent 1124dc8082
commit 00ba4d2a69
8 changed files with 250 additions and 72 deletions

View File

@@ -20,12 +20,12 @@ public class CollectionUtils {
public boolean test(T valueA);
public static <T, V> Compare<T> compare(Function<? super T, ? extends V> keyExtractor, V value) {
public static <T, V> Compare<T> compare(final Function<? super T, ? extends V> keyExtractor, final V value) {
Objects.requireNonNull(keyExtractor);
return t -> Objects.equals(keyExtractor.apply(t), value);
}
default Compare<T> thenCompare(Compare<? super T> other) {
default Compare<T> thenCompare(final Compare<? super T> other) {
Objects.requireNonNull(other);
return t -> {
final boolean res = test(t);
@@ -33,12 +33,12 @@ public class CollectionUtils {
};
}
default <V> Compare<T> thenCompare(Function<T, ? extends V> keyExtractor, V value) {
default <V> Compare<T> thenCompare(final Function<T, ? extends V> keyExtractor, final V value) {
return thenCompare(compare(keyExtractor, value));
}
}
public static <T> List<T> copySort(Collection<? extends T> collection, Comparator<T> comparator) {
public static <T> List<T> copySort(final Collection<? extends T> collection, final Comparator<T> comparator) {
final List<T> result = new ArrayList<T>(collection);
Collections.sort(result, comparator);
return result;
@@ -115,9 +115,9 @@ public class CollectionUtils {
return -1;
}
public static <T> boolean contains(Collection<T> collection, final Compare<T> compare) {
for (T t : collection) {
boolean found = compare.test(t);
public static <T> boolean contains(final Collection<T> collection, final Compare<T> compare) {
for (final T t : collection) {
final boolean found = compare.test(t);
if (found) {
return true;
}
@@ -125,10 +125,10 @@ public class CollectionUtils {
return false;
}
public static <T> long count(Collection<T> collection, final Compare<T> compare) {
public static <T> long count(final Collection<T> collection, final Compare<T> compare) {
long count = 0;
for (T t : collection) {
boolean found = compare.test(t);
for (final T t : collection) {
final boolean found = compare.test(t);
if (found) {
count++;
}
@@ -154,4 +154,10 @@ public class CollectionUtils {
return result;
}
public static <O> void addNCopies(final Collection<O> collection, final int numCopies, final O obj) {
for (int i = 0; i < numCopies; i++) {
collection.add(obj);
}
}
}