in src/main/java/com/googlesource/gerrit/plugins/task/Preloader.java [54:72]
protected static <T, S, K, V> void preloadField(
Class<T> clz, Field field, Task definition, Task preloadFrom)
throws IllegalArgumentException, IllegalAccessException {
T pre = getField(clz, field, preloadFrom);
if (pre != null) {
T val = getField(clz, field, definition);
if (val == null) {
field.set(definition, pre);
} else if (val instanceof List) {
List<?> valList = List.class.cast(val);
List<?> preList = List.class.cast(pre);
field.set(definition, preloadListFrom(castUnchecked(valList), castUnchecked(preList)));
} else if (val instanceof Map) {
Map<?, ?> valMap = Map.class.cast(val);
Map<?, ?> preMap = Map.class.cast(pre);
field.set(definition, preloadMapFrom(castUnchecked(valMap), castUnchecked(preMap)));
} // nothing to do for overridden preloaded scalars
}
}