package it.cavallium.datagen.nativedata; import it.cavallium.datagen.DataUpgrader; import java.util.List; public class UpgradeUtil { @SuppressWarnings("unchecked") public static List upgradeArray(List from, DataUpgrader upgrader) { Object[] array; if (from.getClass() == ImmutableWrappedArrayList.class && ((ImmutableWrappedArrayList) from).a.getClass() == Object[].class) { array = ((ImmutableWrappedArrayList) from).a; } else { array = from.toArray(); } for (int i = 0; i < array.length; i++) { array[i] = (B) upgrader.upgrade((A) array[i]); } return (ImmutableWrappedArrayList) new ImmutableWrappedArrayList<>(array); } public static B upgradeNullable(A nullableValue, DataUpgrader upgrader) { if (nullableValue == null) { return null; } else { return upgrader.upgrade(nullableValue); } } }