protected static void preloadField()

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
    }
  }