modeldb-main/backend/server/src/main/java/ai/verta/modeldb/versioning/blob/visitors/Visitor.java
package ai.verta.modeldb.versioning.blob.visitors;

import ai.verta.modeldb.common.exceptions.ModelDBException;
import ai.verta.modeldb.versioning.autogenerated._public.modeldb.versioning.model.*;
import ai.verta.modeldb.versioning.blob.diff.Utils;
import java.util.ArrayList;
import java.util.List;

public class Visitor {
  public void preVisitListOfAutogenBlobDiff(List<AutogenBlobDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenBlobDiff val : lst) {
      preVisitAutogenBlobDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenBlobDiff(List<AutogenBlobDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenBlobDiff val : lst) {
      preVisitDeepAutogenBlobDiff(val);
    }
  }

  public List<AutogenBlobDiff> postVisitListOfAutogenBlobDiff(List<AutogenBlobDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenBlobDiff> collect = new ArrayList<>(lst.size());
    for (AutogenBlobDiff val : lst) {
      collect.add(postVisitAutogenBlobDiff(val));
    }
    return collect;
  }

  public List<AutogenBlobDiff> postVisitDeepListOfAutogenBlobDiff(List<AutogenBlobDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenBlobDiff> collect = new ArrayList<>(lst.size());
    for (AutogenBlobDiff val : lst) {
      collect.add(postVisitDeepAutogenBlobDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenBlobDiff(AutogenBlobDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenBlobDiff(AutogenBlobDiff blob) throws ModelDBException {}

  public AutogenBlobDiff postVisitAutogenBlobDiff(AutogenBlobDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenBlobDiff postVisitDeepAutogenBlobDiff(AutogenBlobDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenBlob(List<AutogenBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenBlob val : lst) {
      preVisitAutogenBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenBlob(List<AutogenBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenBlob val : lst) {
      preVisitDeepAutogenBlob(val);
    }
  }

  public List<AutogenBlob> postVisitListOfAutogenBlob(List<AutogenBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenBlob> collect = new ArrayList<>(lst.size());
    for (AutogenBlob val : lst) {
      collect.add(postVisitAutogenBlob(val));
    }
    return collect;
  }

  public List<AutogenBlob> postVisitDeepListOfAutogenBlob(List<AutogenBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenBlob> collect = new ArrayList<>(lst.size());
    for (AutogenBlob val : lst) {
      collect.add(postVisitDeepAutogenBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenBlob(AutogenBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenBlob(AutogenBlob blob) throws ModelDBException {}

  public AutogenBlob postVisitAutogenBlob(AutogenBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenBlob postVisitDeepAutogenBlob(AutogenBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenCodeBlob(List<AutogenCodeBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenCodeBlob val : lst) {
      preVisitAutogenCodeBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenCodeBlob(List<AutogenCodeBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenCodeBlob val : lst) {
      preVisitDeepAutogenCodeBlob(val);
    }
  }

  public List<AutogenCodeBlob> postVisitListOfAutogenCodeBlob(List<AutogenCodeBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenCodeBlob> collect = new ArrayList<>(lst.size());
    for (AutogenCodeBlob val : lst) {
      collect.add(postVisitAutogenCodeBlob(val));
    }
    return collect;
  }

  public List<AutogenCodeBlob> postVisitDeepListOfAutogenCodeBlob(List<AutogenCodeBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenCodeBlob> collect = new ArrayList<>(lst.size());
    for (AutogenCodeBlob val : lst) {
      collect.add(postVisitDeepAutogenCodeBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenCodeBlob(AutogenCodeBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenCodeBlob(AutogenCodeBlob blob) throws ModelDBException {}

  public AutogenCodeBlob postVisitAutogenCodeBlob(AutogenCodeBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenCodeBlob postVisitDeepAutogenCodeBlob(AutogenCodeBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenCodeDiff(List<AutogenCodeDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenCodeDiff val : lst) {
      preVisitAutogenCodeDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenCodeDiff(List<AutogenCodeDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenCodeDiff val : lst) {
      preVisitDeepAutogenCodeDiff(val);
    }
  }

  public List<AutogenCodeDiff> postVisitListOfAutogenCodeDiff(List<AutogenCodeDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenCodeDiff> collect = new ArrayList<>(lst.size());
    for (AutogenCodeDiff val : lst) {
      collect.add(postVisitAutogenCodeDiff(val));
    }
    return collect;
  }

  public List<AutogenCodeDiff> postVisitDeepListOfAutogenCodeDiff(List<AutogenCodeDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenCodeDiff> collect = new ArrayList<>(lst.size());
    for (AutogenCodeDiff val : lst) {
      collect.add(postVisitDeepAutogenCodeDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenCodeDiff(AutogenCodeDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenCodeDiff(AutogenCodeDiff blob) throws ModelDBException {}

  public AutogenCodeDiff postVisitAutogenCodeDiff(AutogenCodeDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenCodeDiff postVisitDeepAutogenCodeDiff(AutogenCodeDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenCommandLineEnvironmentDiff(
      List<AutogenCommandLineEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenCommandLineEnvironmentDiff val : lst) {
      preVisitAutogenCommandLineEnvironmentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenCommandLineEnvironmentDiff(
      List<AutogenCommandLineEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenCommandLineEnvironmentDiff val : lst) {
      preVisitDeepAutogenCommandLineEnvironmentDiff(val);
    }
  }

  public List<AutogenCommandLineEnvironmentDiff> postVisitListOfAutogenCommandLineEnvironmentDiff(
      List<AutogenCommandLineEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenCommandLineEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenCommandLineEnvironmentDiff val : lst) {
      collect.add(postVisitAutogenCommandLineEnvironmentDiff(val));
    }
    return collect;
  }

  public List<AutogenCommandLineEnvironmentDiff>
      postVisitDeepListOfAutogenCommandLineEnvironmentDiff(
          List<AutogenCommandLineEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenCommandLineEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenCommandLineEnvironmentDiff val : lst) {
      collect.add(postVisitDeepAutogenCommandLineEnvironmentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenCommandLineEnvironmentDiff(AutogenCommandLineEnvironmentDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenCommandLineEnvironmentDiff(AutogenCommandLineEnvironmentDiff blob)
      throws ModelDBException {}

  public AutogenCommandLineEnvironmentDiff postVisitAutogenCommandLineEnvironmentDiff(
      AutogenCommandLineEnvironmentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenCommandLineEnvironmentDiff postVisitDeepAutogenCommandLineEnvironmentDiff(
      AutogenCommandLineEnvironmentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenConfigBlob(List<AutogenConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenConfigBlob val : lst) {
      preVisitAutogenConfigBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenConfigBlob(List<AutogenConfigBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenConfigBlob val : lst) {
      preVisitDeepAutogenConfigBlob(val);
    }
  }

  public List<AutogenConfigBlob> postVisitListOfAutogenConfigBlob(List<AutogenConfigBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenConfigBlob val : lst) {
      collect.add(postVisitAutogenConfigBlob(val));
    }
    return collect;
  }

  public List<AutogenConfigBlob> postVisitDeepListOfAutogenConfigBlob(List<AutogenConfigBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenConfigBlob val : lst) {
      collect.add(postVisitDeepAutogenConfigBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenConfigBlob(AutogenConfigBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenConfigBlob(AutogenConfigBlob blob) throws ModelDBException {}

  public AutogenConfigBlob postVisitAutogenConfigBlob(AutogenConfigBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenConfigBlob postVisitDeepAutogenConfigBlob(AutogenConfigBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenConfigDiff(List<AutogenConfigDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenConfigDiff val : lst) {
      preVisitAutogenConfigDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenConfigDiff(List<AutogenConfigDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenConfigDiff val : lst) {
      preVisitDeepAutogenConfigDiff(val);
    }
  }

  public List<AutogenConfigDiff> postVisitListOfAutogenConfigDiff(List<AutogenConfigDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenConfigDiff> collect = new ArrayList<>(lst.size());
    for (AutogenConfigDiff val : lst) {
      collect.add(postVisitAutogenConfigDiff(val));
    }
    return collect;
  }

  public List<AutogenConfigDiff> postVisitDeepListOfAutogenConfigDiff(List<AutogenConfigDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenConfigDiff> collect = new ArrayList<>(lst.size());
    for (AutogenConfigDiff val : lst) {
      collect.add(postVisitDeepAutogenConfigDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenConfigDiff(AutogenConfigDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenConfigDiff(AutogenConfigDiff blob) throws ModelDBException {}

  public AutogenConfigDiff postVisitAutogenConfigDiff(AutogenConfigDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenConfigDiff postVisitDeepAutogenConfigDiff(AutogenConfigDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenContinuousHyperparameterSetConfigBlob(
      List<AutogenContinuousHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenContinuousHyperparameterSetConfigBlob val : lst) {
      preVisitAutogenContinuousHyperparameterSetConfigBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenContinuousHyperparameterSetConfigBlob(
      List<AutogenContinuousHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenContinuousHyperparameterSetConfigBlob val : lst) {
      preVisitDeepAutogenContinuousHyperparameterSetConfigBlob(val);
    }
  }

  public List<AutogenContinuousHyperparameterSetConfigBlob>
      postVisitListOfAutogenContinuousHyperparameterSetConfigBlob(
          List<AutogenContinuousHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenContinuousHyperparameterSetConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenContinuousHyperparameterSetConfigBlob val : lst) {
      collect.add(postVisitAutogenContinuousHyperparameterSetConfigBlob(val));
    }
    return collect;
  }

  public List<AutogenContinuousHyperparameterSetConfigBlob>
      postVisitDeepListOfAutogenContinuousHyperparameterSetConfigBlob(
          List<AutogenContinuousHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenContinuousHyperparameterSetConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenContinuousHyperparameterSetConfigBlob val : lst) {
      collect.add(postVisitDeepAutogenContinuousHyperparameterSetConfigBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenContinuousHyperparameterSetConfigBlob(
      AutogenContinuousHyperparameterSetConfigBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenContinuousHyperparameterSetConfigBlob(
      AutogenContinuousHyperparameterSetConfigBlob blob) throws ModelDBException {}

  public AutogenContinuousHyperparameterSetConfigBlob
      postVisitAutogenContinuousHyperparameterSetConfigBlob(
          AutogenContinuousHyperparameterSetConfigBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenContinuousHyperparameterSetConfigBlob
      postVisitDeepAutogenContinuousHyperparameterSetConfigBlob(
          AutogenContinuousHyperparameterSetConfigBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenDatasetBlob(List<AutogenDatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDatasetBlob val : lst) {
      preVisitAutogenDatasetBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenDatasetBlob(List<AutogenDatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDatasetBlob val : lst) {
      preVisitDeepAutogenDatasetBlob(val);
    }
  }

  public List<AutogenDatasetBlob> postVisitListOfAutogenDatasetBlob(List<AutogenDatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenDatasetBlob val : lst) {
      collect.add(postVisitAutogenDatasetBlob(val));
    }
    return collect;
  }

  public List<AutogenDatasetBlob> postVisitDeepListOfAutogenDatasetBlob(
      List<AutogenDatasetBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenDatasetBlob val : lst) {
      collect.add(postVisitDeepAutogenDatasetBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenDatasetBlob(AutogenDatasetBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenDatasetBlob(AutogenDatasetBlob blob) throws ModelDBException {}

  public AutogenDatasetBlob postVisitAutogenDatasetBlob(AutogenDatasetBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenDatasetBlob postVisitDeepAutogenDatasetBlob(AutogenDatasetBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenDatasetDiff(List<AutogenDatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDatasetDiff val : lst) {
      preVisitAutogenDatasetDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenDatasetDiff(List<AutogenDatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDatasetDiff val : lst) {
      preVisitDeepAutogenDatasetDiff(val);
    }
  }

  public List<AutogenDatasetDiff> postVisitListOfAutogenDatasetDiff(List<AutogenDatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenDatasetDiff val : lst) {
      collect.add(postVisitAutogenDatasetDiff(val));
    }
    return collect;
  }

  public List<AutogenDatasetDiff> postVisitDeepListOfAutogenDatasetDiff(
      List<AutogenDatasetDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenDatasetDiff val : lst) {
      collect.add(postVisitDeepAutogenDatasetDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenDatasetDiff(AutogenDatasetDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenDatasetDiff(AutogenDatasetDiff blob) throws ModelDBException {}

  public AutogenDatasetDiff postVisitAutogenDatasetDiff(AutogenDatasetDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenDatasetDiff postVisitDeepAutogenDatasetDiff(AutogenDatasetDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenDiscreteHyperparameterSetConfigBlob(
      List<AutogenDiscreteHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenDiscreteHyperparameterSetConfigBlob val : lst) {
      preVisitAutogenDiscreteHyperparameterSetConfigBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenDiscreteHyperparameterSetConfigBlob(
      List<AutogenDiscreteHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenDiscreteHyperparameterSetConfigBlob val : lst) {
      preVisitDeepAutogenDiscreteHyperparameterSetConfigBlob(val);
    }
  }

  public List<AutogenDiscreteHyperparameterSetConfigBlob>
      postVisitListOfAutogenDiscreteHyperparameterSetConfigBlob(
          List<AutogenDiscreteHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDiscreteHyperparameterSetConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenDiscreteHyperparameterSetConfigBlob val : lst) {
      collect.add(postVisitAutogenDiscreteHyperparameterSetConfigBlob(val));
    }
    return collect;
  }

  public List<AutogenDiscreteHyperparameterSetConfigBlob>
      postVisitDeepListOfAutogenDiscreteHyperparameterSetConfigBlob(
          List<AutogenDiscreteHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDiscreteHyperparameterSetConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenDiscreteHyperparameterSetConfigBlob val : lst) {
      collect.add(postVisitDeepAutogenDiscreteHyperparameterSetConfigBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenDiscreteHyperparameterSetConfigBlob(
      AutogenDiscreteHyperparameterSetConfigBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenDiscreteHyperparameterSetConfigBlob(
      AutogenDiscreteHyperparameterSetConfigBlob blob) throws ModelDBException {}

  public AutogenDiscreteHyperparameterSetConfigBlob
      postVisitAutogenDiscreteHyperparameterSetConfigBlob(
          AutogenDiscreteHyperparameterSetConfigBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenDiscreteHyperparameterSetConfigBlob
      postVisitDeepAutogenDiscreteHyperparameterSetConfigBlob(
          AutogenDiscreteHyperparameterSetConfigBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenDockerEnvironmentBlob(List<AutogenDockerEnvironmentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDockerEnvironmentBlob val : lst) {
      preVisitAutogenDockerEnvironmentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenDockerEnvironmentBlob(List<AutogenDockerEnvironmentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDockerEnvironmentBlob val : lst) {
      preVisitDeepAutogenDockerEnvironmentBlob(val);
    }
  }

  public List<AutogenDockerEnvironmentBlob> postVisitListOfAutogenDockerEnvironmentBlob(
      List<AutogenDockerEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDockerEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenDockerEnvironmentBlob val : lst) {
      collect.add(postVisitAutogenDockerEnvironmentBlob(val));
    }
    return collect;
  }

  public List<AutogenDockerEnvironmentBlob> postVisitDeepListOfAutogenDockerEnvironmentBlob(
      List<AutogenDockerEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDockerEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenDockerEnvironmentBlob val : lst) {
      collect.add(postVisitDeepAutogenDockerEnvironmentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenDockerEnvironmentBlob(AutogenDockerEnvironmentBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenDockerEnvironmentBlob(AutogenDockerEnvironmentBlob blob)
      throws ModelDBException {}

  public AutogenDockerEnvironmentBlob postVisitAutogenDockerEnvironmentBlob(
      AutogenDockerEnvironmentBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenDockerEnvironmentBlob postVisitDeepAutogenDockerEnvironmentBlob(
      AutogenDockerEnvironmentBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenDockerEnvironmentDiff(List<AutogenDockerEnvironmentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDockerEnvironmentDiff val : lst) {
      preVisitAutogenDockerEnvironmentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenDockerEnvironmentDiff(List<AutogenDockerEnvironmentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenDockerEnvironmentDiff val : lst) {
      preVisitDeepAutogenDockerEnvironmentDiff(val);
    }
  }

  public List<AutogenDockerEnvironmentDiff> postVisitListOfAutogenDockerEnvironmentDiff(
      List<AutogenDockerEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDockerEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenDockerEnvironmentDiff val : lst) {
      collect.add(postVisitAutogenDockerEnvironmentDiff(val));
    }
    return collect;
  }

  public List<AutogenDockerEnvironmentDiff> postVisitDeepListOfAutogenDockerEnvironmentDiff(
      List<AutogenDockerEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDockerEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenDockerEnvironmentDiff val : lst) {
      collect.add(postVisitDeepAutogenDockerEnvironmentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenDockerEnvironmentDiff(AutogenDockerEnvironmentDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenDockerEnvironmentDiff(AutogenDockerEnvironmentDiff blob)
      throws ModelDBException {}

  public AutogenDockerEnvironmentDiff postVisitAutogenDockerEnvironmentDiff(
      AutogenDockerEnvironmentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenDockerEnvironmentDiff postVisitDeepAutogenDockerEnvironmentDiff(
      AutogenDockerEnvironmentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenEnvironmentBlob(List<AutogenEnvironmentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentBlob val : lst) {
      preVisitAutogenEnvironmentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenEnvironmentBlob(List<AutogenEnvironmentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentBlob val : lst) {
      preVisitDeepAutogenEnvironmentBlob(val);
    }
  }

  public List<AutogenEnvironmentBlob> postVisitListOfAutogenEnvironmentBlob(
      List<AutogenEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentBlob val : lst) {
      collect.add(postVisitAutogenEnvironmentBlob(val));
    }
    return collect;
  }

  public List<AutogenEnvironmentBlob> postVisitDeepListOfAutogenEnvironmentBlob(
      List<AutogenEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentBlob val : lst) {
      collect.add(postVisitDeepAutogenEnvironmentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenEnvironmentBlob(AutogenEnvironmentBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenEnvironmentBlob(AutogenEnvironmentBlob blob)
      throws ModelDBException {}

  public AutogenEnvironmentBlob postVisitAutogenEnvironmentBlob(AutogenEnvironmentBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenEnvironmentBlob postVisitDeepAutogenEnvironmentBlob(AutogenEnvironmentBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenEnvironmentDiff(List<AutogenEnvironmentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentDiff val : lst) {
      preVisitAutogenEnvironmentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenEnvironmentDiff(List<AutogenEnvironmentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentDiff val : lst) {
      preVisitDeepAutogenEnvironmentDiff(val);
    }
  }

  public List<AutogenEnvironmentDiff> postVisitListOfAutogenEnvironmentDiff(
      List<AutogenEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentDiff val : lst) {
      collect.add(postVisitAutogenEnvironmentDiff(val));
    }
    return collect;
  }

  public List<AutogenEnvironmentDiff> postVisitDeepListOfAutogenEnvironmentDiff(
      List<AutogenEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentDiff val : lst) {
      collect.add(postVisitDeepAutogenEnvironmentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenEnvironmentDiff(AutogenEnvironmentDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenEnvironmentDiff(AutogenEnvironmentDiff blob)
      throws ModelDBException {}

  public AutogenEnvironmentDiff postVisitAutogenEnvironmentDiff(AutogenEnvironmentDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenEnvironmentDiff postVisitDeepAutogenEnvironmentDiff(AutogenEnvironmentDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenEnvironmentVariablesBlob(
      List<AutogenEnvironmentVariablesBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentVariablesBlob val : lst) {
      preVisitAutogenEnvironmentVariablesBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenEnvironmentVariablesBlob(
      List<AutogenEnvironmentVariablesBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentVariablesBlob val : lst) {
      preVisitDeepAutogenEnvironmentVariablesBlob(val);
    }
  }

  public List<AutogenEnvironmentVariablesBlob> postVisitListOfAutogenEnvironmentVariablesBlob(
      List<AutogenEnvironmentVariablesBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentVariablesBlob> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentVariablesBlob val : lst) {
      collect.add(postVisitAutogenEnvironmentVariablesBlob(val));
    }
    return collect;
  }

  public List<AutogenEnvironmentVariablesBlob> postVisitDeepListOfAutogenEnvironmentVariablesBlob(
      List<AutogenEnvironmentVariablesBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentVariablesBlob> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentVariablesBlob val : lst) {
      collect.add(postVisitDeepAutogenEnvironmentVariablesBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenEnvironmentVariablesBlob(AutogenEnvironmentVariablesBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenEnvironmentVariablesBlob(AutogenEnvironmentVariablesBlob blob)
      throws ModelDBException {}

  public AutogenEnvironmentVariablesBlob postVisitAutogenEnvironmentVariablesBlob(
      AutogenEnvironmentVariablesBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenEnvironmentVariablesBlob postVisitDeepAutogenEnvironmentVariablesBlob(
      AutogenEnvironmentVariablesBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenEnvironmentVariablesDiff(
      List<AutogenEnvironmentVariablesDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentVariablesDiff val : lst) {
      preVisitAutogenEnvironmentVariablesDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenEnvironmentVariablesDiff(
      List<AutogenEnvironmentVariablesDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenEnvironmentVariablesDiff val : lst) {
      preVisitDeepAutogenEnvironmentVariablesDiff(val);
    }
  }

  public List<AutogenEnvironmentVariablesDiff> postVisitListOfAutogenEnvironmentVariablesDiff(
      List<AutogenEnvironmentVariablesDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentVariablesDiff> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentVariablesDiff val : lst) {
      collect.add(postVisitAutogenEnvironmentVariablesDiff(val));
    }
    return collect;
  }

  public List<AutogenEnvironmentVariablesDiff> postVisitDeepListOfAutogenEnvironmentVariablesDiff(
      List<AutogenEnvironmentVariablesDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenEnvironmentVariablesDiff> collect = new ArrayList<>(lst.size());
    for (AutogenEnvironmentVariablesDiff val : lst) {
      collect.add(postVisitDeepAutogenEnvironmentVariablesDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenEnvironmentVariablesDiff(AutogenEnvironmentVariablesDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenEnvironmentVariablesDiff(AutogenEnvironmentVariablesDiff blob)
      throws ModelDBException {}

  public AutogenEnvironmentVariablesDiff postVisitAutogenEnvironmentVariablesDiff(
      AutogenEnvironmentVariablesDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenEnvironmentVariablesDiff postVisitDeepAutogenEnvironmentVariablesDiff(
      AutogenEnvironmentVariablesDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenGitCodeBlob(List<AutogenGitCodeBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenGitCodeBlob val : lst) {
      preVisitAutogenGitCodeBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenGitCodeBlob(List<AutogenGitCodeBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenGitCodeBlob val : lst) {
      preVisitDeepAutogenGitCodeBlob(val);
    }
  }

  public List<AutogenGitCodeBlob> postVisitListOfAutogenGitCodeBlob(List<AutogenGitCodeBlob> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenGitCodeBlob> collect = new ArrayList<>(lst.size());
    for (AutogenGitCodeBlob val : lst) {
      collect.add(postVisitAutogenGitCodeBlob(val));
    }
    return collect;
  }

  public List<AutogenGitCodeBlob> postVisitDeepListOfAutogenGitCodeBlob(
      List<AutogenGitCodeBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenGitCodeBlob> collect = new ArrayList<>(lst.size());
    for (AutogenGitCodeBlob val : lst) {
      collect.add(postVisitDeepAutogenGitCodeBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenGitCodeBlob(AutogenGitCodeBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenGitCodeBlob(AutogenGitCodeBlob blob) throws ModelDBException {}

  public AutogenGitCodeBlob postVisitAutogenGitCodeBlob(AutogenGitCodeBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenGitCodeBlob postVisitDeepAutogenGitCodeBlob(AutogenGitCodeBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenGitCodeDiff(List<AutogenGitCodeDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenGitCodeDiff val : lst) {
      preVisitAutogenGitCodeDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenGitCodeDiff(List<AutogenGitCodeDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenGitCodeDiff val : lst) {
      preVisitDeepAutogenGitCodeDiff(val);
    }
  }

  public List<AutogenGitCodeDiff> postVisitListOfAutogenGitCodeDiff(List<AutogenGitCodeDiff> lst)
      throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenGitCodeDiff> collect = new ArrayList<>(lst.size());
    for (AutogenGitCodeDiff val : lst) {
      collect.add(postVisitAutogenGitCodeDiff(val));
    }
    return collect;
  }

  public List<AutogenGitCodeDiff> postVisitDeepListOfAutogenGitCodeDiff(
      List<AutogenGitCodeDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenGitCodeDiff> collect = new ArrayList<>(lst.size());
    for (AutogenGitCodeDiff val : lst) {
      collect.add(postVisitDeepAutogenGitCodeDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenGitCodeDiff(AutogenGitCodeDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenGitCodeDiff(AutogenGitCodeDiff blob) throws ModelDBException {}

  public AutogenGitCodeDiff postVisitAutogenGitCodeDiff(AutogenGitCodeDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenGitCodeDiff postVisitDeepAutogenGitCodeDiff(AutogenGitCodeDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenHyperparameterConfigBlob(
      List<AutogenHyperparameterConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterConfigBlob val : lst) {
      preVisitAutogenHyperparameterConfigBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenHyperparameterConfigBlob(
      List<AutogenHyperparameterConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterConfigBlob val : lst) {
      preVisitDeepAutogenHyperparameterConfigBlob(val);
    }
  }

  public List<AutogenHyperparameterConfigBlob> postVisitListOfAutogenHyperparameterConfigBlob(
      List<AutogenHyperparameterConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterConfigBlob val : lst) {
      collect.add(postVisitAutogenHyperparameterConfigBlob(val));
    }
    return collect;
  }

  public List<AutogenHyperparameterConfigBlob> postVisitDeepListOfAutogenHyperparameterConfigBlob(
      List<AutogenHyperparameterConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterConfigBlob val : lst) {
      collect.add(postVisitDeepAutogenHyperparameterConfigBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenHyperparameterConfigBlob(AutogenHyperparameterConfigBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenHyperparameterConfigBlob(AutogenHyperparameterConfigBlob blob)
      throws ModelDBException {}

  public AutogenHyperparameterConfigBlob postVisitAutogenHyperparameterConfigBlob(
      AutogenHyperparameterConfigBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenHyperparameterConfigBlob postVisitDeepAutogenHyperparameterConfigBlob(
      AutogenHyperparameterConfigBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenHyperparameterConfigDiff(
      List<AutogenHyperparameterConfigDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterConfigDiff val : lst) {
      preVisitAutogenHyperparameterConfigDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenHyperparameterConfigDiff(
      List<AutogenHyperparameterConfigDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterConfigDiff val : lst) {
      preVisitDeepAutogenHyperparameterConfigDiff(val);
    }
  }

  public List<AutogenHyperparameterConfigDiff> postVisitListOfAutogenHyperparameterConfigDiff(
      List<AutogenHyperparameterConfigDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterConfigDiff> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterConfigDiff val : lst) {
      collect.add(postVisitAutogenHyperparameterConfigDiff(val));
    }
    return collect;
  }

  public List<AutogenHyperparameterConfigDiff> postVisitDeepListOfAutogenHyperparameterConfigDiff(
      List<AutogenHyperparameterConfigDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterConfigDiff> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterConfigDiff val : lst) {
      collect.add(postVisitDeepAutogenHyperparameterConfigDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenHyperparameterConfigDiff(AutogenHyperparameterConfigDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenHyperparameterConfigDiff(AutogenHyperparameterConfigDiff blob)
      throws ModelDBException {}

  public AutogenHyperparameterConfigDiff postVisitAutogenHyperparameterConfigDiff(
      AutogenHyperparameterConfigDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenHyperparameterConfigDiff postVisitDeepAutogenHyperparameterConfigDiff(
      AutogenHyperparameterConfigDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenHyperparameterSetConfigBlob(
      List<AutogenHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterSetConfigBlob val : lst) {
      preVisitAutogenHyperparameterSetConfigBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenHyperparameterSetConfigBlob(
      List<AutogenHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterSetConfigBlob val : lst) {
      preVisitDeepAutogenHyperparameterSetConfigBlob(val);
    }
  }

  public List<AutogenHyperparameterSetConfigBlob> postVisitListOfAutogenHyperparameterSetConfigBlob(
      List<AutogenHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterSetConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterSetConfigBlob val : lst) {
      collect.add(postVisitAutogenHyperparameterSetConfigBlob(val));
    }
    return collect;
  }

  public List<AutogenHyperparameterSetConfigBlob>
      postVisitDeepListOfAutogenHyperparameterSetConfigBlob(
          List<AutogenHyperparameterSetConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterSetConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterSetConfigBlob val : lst) {
      collect.add(postVisitDeepAutogenHyperparameterSetConfigBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenHyperparameterSetConfigBlob(AutogenHyperparameterSetConfigBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenHyperparameterSetConfigBlob(
      AutogenHyperparameterSetConfigBlob blob) throws ModelDBException {}

  public AutogenHyperparameterSetConfigBlob postVisitAutogenHyperparameterSetConfigBlob(
      AutogenHyperparameterSetConfigBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenHyperparameterSetConfigBlob postVisitDeepAutogenHyperparameterSetConfigBlob(
      AutogenHyperparameterSetConfigBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenHyperparameterSetConfigDiff(
      List<AutogenHyperparameterSetConfigDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterSetConfigDiff val : lst) {
      preVisitAutogenHyperparameterSetConfigDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenHyperparameterSetConfigDiff(
      List<AutogenHyperparameterSetConfigDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterSetConfigDiff val : lst) {
      preVisitDeepAutogenHyperparameterSetConfigDiff(val);
    }
  }

  public List<AutogenHyperparameterSetConfigDiff> postVisitListOfAutogenHyperparameterSetConfigDiff(
      List<AutogenHyperparameterSetConfigDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterSetConfigDiff> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterSetConfigDiff val : lst) {
      collect.add(postVisitAutogenHyperparameterSetConfigDiff(val));
    }
    return collect;
  }

  public List<AutogenHyperparameterSetConfigDiff>
      postVisitDeepListOfAutogenHyperparameterSetConfigDiff(
          List<AutogenHyperparameterSetConfigDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterSetConfigDiff> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterSetConfigDiff val : lst) {
      collect.add(postVisitDeepAutogenHyperparameterSetConfigDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenHyperparameterSetConfigDiff(AutogenHyperparameterSetConfigDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenHyperparameterSetConfigDiff(
      AutogenHyperparameterSetConfigDiff blob) throws ModelDBException {}

  public AutogenHyperparameterSetConfigDiff postVisitAutogenHyperparameterSetConfigDiff(
      AutogenHyperparameterSetConfigDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenHyperparameterSetConfigDiff postVisitDeepAutogenHyperparameterSetConfigDiff(
      AutogenHyperparameterSetConfigDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenHyperparameterValuesConfigBlob(
      List<AutogenHyperparameterValuesConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterValuesConfigBlob val : lst) {
      preVisitAutogenHyperparameterValuesConfigBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenHyperparameterValuesConfigBlob(
      List<AutogenHyperparameterValuesConfigBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenHyperparameterValuesConfigBlob val : lst) {
      preVisitDeepAutogenHyperparameterValuesConfigBlob(val);
    }
  }

  public List<AutogenHyperparameterValuesConfigBlob>
      postVisitListOfAutogenHyperparameterValuesConfigBlob(
          List<AutogenHyperparameterValuesConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterValuesConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterValuesConfigBlob val : lst) {
      collect.add(postVisitAutogenHyperparameterValuesConfigBlob(val));
    }
    return collect;
  }

  public List<AutogenHyperparameterValuesConfigBlob>
      postVisitDeepListOfAutogenHyperparameterValuesConfigBlob(
          List<AutogenHyperparameterValuesConfigBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenHyperparameterValuesConfigBlob> collect = new ArrayList<>(lst.size());
    for (AutogenHyperparameterValuesConfigBlob val : lst) {
      collect.add(postVisitDeepAutogenHyperparameterValuesConfigBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenHyperparameterValuesConfigBlob(
      AutogenHyperparameterValuesConfigBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenHyperparameterValuesConfigBlob(
      AutogenHyperparameterValuesConfigBlob blob) throws ModelDBException {}

  public AutogenHyperparameterValuesConfigBlob postVisitAutogenHyperparameterValuesConfigBlob(
      AutogenHyperparameterValuesConfigBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenHyperparameterValuesConfigBlob postVisitDeepAutogenHyperparameterValuesConfigBlob(
      AutogenHyperparameterValuesConfigBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenNotebookCodeBlob(List<AutogenNotebookCodeBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenNotebookCodeBlob val : lst) {
      preVisitAutogenNotebookCodeBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenNotebookCodeBlob(List<AutogenNotebookCodeBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenNotebookCodeBlob val : lst) {
      preVisitDeepAutogenNotebookCodeBlob(val);
    }
  }

  public List<AutogenNotebookCodeBlob> postVisitListOfAutogenNotebookCodeBlob(
      List<AutogenNotebookCodeBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenNotebookCodeBlob> collect = new ArrayList<>(lst.size());
    for (AutogenNotebookCodeBlob val : lst) {
      collect.add(postVisitAutogenNotebookCodeBlob(val));
    }
    return collect;
  }

  public List<AutogenNotebookCodeBlob> postVisitDeepListOfAutogenNotebookCodeBlob(
      List<AutogenNotebookCodeBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenNotebookCodeBlob> collect = new ArrayList<>(lst.size());
    for (AutogenNotebookCodeBlob val : lst) {
      collect.add(postVisitDeepAutogenNotebookCodeBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenNotebookCodeBlob(AutogenNotebookCodeBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenNotebookCodeBlob(AutogenNotebookCodeBlob blob)
      throws ModelDBException {}

  public AutogenNotebookCodeBlob postVisitAutogenNotebookCodeBlob(AutogenNotebookCodeBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenNotebookCodeBlob postVisitDeepAutogenNotebookCodeBlob(AutogenNotebookCodeBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenNotebookCodeDiff(List<AutogenNotebookCodeDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenNotebookCodeDiff val : lst) {
      preVisitAutogenNotebookCodeDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenNotebookCodeDiff(List<AutogenNotebookCodeDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenNotebookCodeDiff val : lst) {
      preVisitDeepAutogenNotebookCodeDiff(val);
    }
  }

  public List<AutogenNotebookCodeDiff> postVisitListOfAutogenNotebookCodeDiff(
      List<AutogenNotebookCodeDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenNotebookCodeDiff> collect = new ArrayList<>(lst.size());
    for (AutogenNotebookCodeDiff val : lst) {
      collect.add(postVisitAutogenNotebookCodeDiff(val));
    }
    return collect;
  }

  public List<AutogenNotebookCodeDiff> postVisitDeepListOfAutogenNotebookCodeDiff(
      List<AutogenNotebookCodeDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenNotebookCodeDiff> collect = new ArrayList<>(lst.size());
    for (AutogenNotebookCodeDiff val : lst) {
      collect.add(postVisitDeepAutogenNotebookCodeDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenNotebookCodeDiff(AutogenNotebookCodeDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenNotebookCodeDiff(AutogenNotebookCodeDiff blob)
      throws ModelDBException {}

  public AutogenNotebookCodeDiff postVisitAutogenNotebookCodeDiff(AutogenNotebookCodeDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenNotebookCodeDiff postVisitDeepAutogenNotebookCodeDiff(AutogenNotebookCodeDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPathDatasetBlob(List<AutogenPathDatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetBlob val : lst) {
      preVisitAutogenPathDatasetBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenPathDatasetBlob(List<AutogenPathDatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetBlob val : lst) {
      preVisitDeepAutogenPathDatasetBlob(val);
    }
  }

  public List<AutogenPathDatasetBlob> postVisitListOfAutogenPathDatasetBlob(
      List<AutogenPathDatasetBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetBlob val : lst) {
      collect.add(postVisitAutogenPathDatasetBlob(val));
    }
    return collect;
  }

  public List<AutogenPathDatasetBlob> postVisitDeepListOfAutogenPathDatasetBlob(
      List<AutogenPathDatasetBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetBlob val : lst) {
      collect.add(postVisitDeepAutogenPathDatasetBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenPathDatasetBlob(AutogenPathDatasetBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenPathDatasetBlob(AutogenPathDatasetBlob blob)
      throws ModelDBException {}

  public AutogenPathDatasetBlob postVisitAutogenPathDatasetBlob(AutogenPathDatasetBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenPathDatasetBlob postVisitDeepAutogenPathDatasetBlob(AutogenPathDatasetBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPathDatasetComponentBlob(
      List<AutogenPathDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetComponentBlob val : lst) {
      preVisitAutogenPathDatasetComponentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenPathDatasetComponentBlob(
      List<AutogenPathDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetComponentBlob val : lst) {
      preVisitDeepAutogenPathDatasetComponentBlob(val);
    }
  }

  public List<AutogenPathDatasetComponentBlob> postVisitListOfAutogenPathDatasetComponentBlob(
      List<AutogenPathDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetComponentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetComponentBlob val : lst) {
      collect.add(postVisitAutogenPathDatasetComponentBlob(val));
    }
    return collect;
  }

  public List<AutogenPathDatasetComponentBlob> postVisitDeepListOfAutogenPathDatasetComponentBlob(
      List<AutogenPathDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetComponentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetComponentBlob val : lst) {
      collect.add(postVisitDeepAutogenPathDatasetComponentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenPathDatasetComponentBlob(AutogenPathDatasetComponentBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenPathDatasetComponentBlob(AutogenPathDatasetComponentBlob blob)
      throws ModelDBException {}

  public AutogenPathDatasetComponentBlob postVisitAutogenPathDatasetComponentBlob(
      AutogenPathDatasetComponentBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenPathDatasetComponentBlob postVisitDeepAutogenPathDatasetComponentBlob(
      AutogenPathDatasetComponentBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPathDatasetComponentDiff(
      List<AutogenPathDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetComponentDiff val : lst) {
      preVisitAutogenPathDatasetComponentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenPathDatasetComponentDiff(
      List<AutogenPathDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetComponentDiff val : lst) {
      preVisitDeepAutogenPathDatasetComponentDiff(val);
    }
  }

  public List<AutogenPathDatasetComponentDiff> postVisitListOfAutogenPathDatasetComponentDiff(
      List<AutogenPathDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetComponentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetComponentDiff val : lst) {
      collect.add(postVisitAutogenPathDatasetComponentDiff(val));
    }
    return collect;
  }

  public List<AutogenPathDatasetComponentDiff> postVisitDeepListOfAutogenPathDatasetComponentDiff(
      List<AutogenPathDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetComponentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetComponentDiff val : lst) {
      collect.add(postVisitDeepAutogenPathDatasetComponentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenPathDatasetComponentDiff(AutogenPathDatasetComponentDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenPathDatasetComponentDiff(AutogenPathDatasetComponentDiff blob)
      throws ModelDBException {}

  public AutogenPathDatasetComponentDiff postVisitAutogenPathDatasetComponentDiff(
      AutogenPathDatasetComponentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenPathDatasetComponentDiff postVisitDeepAutogenPathDatasetComponentDiff(
      AutogenPathDatasetComponentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPathDatasetDiff(List<AutogenPathDatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetDiff val : lst) {
      preVisitAutogenPathDatasetDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenPathDatasetDiff(List<AutogenPathDatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPathDatasetDiff val : lst) {
      preVisitDeepAutogenPathDatasetDiff(val);
    }
  }

  public List<AutogenPathDatasetDiff> postVisitListOfAutogenPathDatasetDiff(
      List<AutogenPathDatasetDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetDiff val : lst) {
      collect.add(postVisitAutogenPathDatasetDiff(val));
    }
    return collect;
  }

  public List<AutogenPathDatasetDiff> postVisitDeepListOfAutogenPathDatasetDiff(
      List<AutogenPathDatasetDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPathDatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPathDatasetDiff val : lst) {
      collect.add(postVisitDeepAutogenPathDatasetDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenPathDatasetDiff(AutogenPathDatasetDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenPathDatasetDiff(AutogenPathDatasetDiff blob)
      throws ModelDBException {}

  public AutogenPathDatasetDiff postVisitAutogenPathDatasetDiff(AutogenPathDatasetDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenPathDatasetDiff postVisitDeepAutogenPathDatasetDiff(AutogenPathDatasetDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPythonEnvironmentBlob(List<AutogenPythonEnvironmentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonEnvironmentBlob val : lst) {
      preVisitAutogenPythonEnvironmentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenPythonEnvironmentBlob(List<AutogenPythonEnvironmentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonEnvironmentBlob val : lst) {
      preVisitDeepAutogenPythonEnvironmentBlob(val);
    }
  }

  public List<AutogenPythonEnvironmentBlob> postVisitListOfAutogenPythonEnvironmentBlob(
      List<AutogenPythonEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPythonEnvironmentBlob val : lst) {
      collect.add(postVisitAutogenPythonEnvironmentBlob(val));
    }
    return collect;
  }

  public List<AutogenPythonEnvironmentBlob> postVisitDeepListOfAutogenPythonEnvironmentBlob(
      List<AutogenPythonEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPythonEnvironmentBlob val : lst) {
      collect.add(postVisitDeepAutogenPythonEnvironmentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenPythonEnvironmentBlob(AutogenPythonEnvironmentBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenPythonEnvironmentBlob(AutogenPythonEnvironmentBlob blob)
      throws ModelDBException {}

  public AutogenPythonEnvironmentBlob postVisitAutogenPythonEnvironmentBlob(
      AutogenPythonEnvironmentBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenPythonEnvironmentBlob postVisitDeepAutogenPythonEnvironmentBlob(
      AutogenPythonEnvironmentBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPythonEnvironmentDiff(List<AutogenPythonEnvironmentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonEnvironmentDiff val : lst) {
      preVisitAutogenPythonEnvironmentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenPythonEnvironmentDiff(List<AutogenPythonEnvironmentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonEnvironmentDiff val : lst) {
      preVisitDeepAutogenPythonEnvironmentDiff(val);
    }
  }

  public List<AutogenPythonEnvironmentDiff> postVisitListOfAutogenPythonEnvironmentDiff(
      List<AutogenPythonEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPythonEnvironmentDiff val : lst) {
      collect.add(postVisitAutogenPythonEnvironmentDiff(val));
    }
    return collect;
  }

  public List<AutogenPythonEnvironmentDiff> postVisitDeepListOfAutogenPythonEnvironmentDiff(
      List<AutogenPythonEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPythonEnvironmentDiff val : lst) {
      collect.add(postVisitDeepAutogenPythonEnvironmentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenPythonEnvironmentDiff(AutogenPythonEnvironmentDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenPythonEnvironmentDiff(AutogenPythonEnvironmentDiff blob)
      throws ModelDBException {}

  public AutogenPythonEnvironmentDiff postVisitAutogenPythonEnvironmentDiff(
      AutogenPythonEnvironmentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenPythonEnvironmentDiff postVisitDeepAutogenPythonEnvironmentDiff(
      AutogenPythonEnvironmentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPythonRequirementEnvironmentBlob(
      List<AutogenPythonRequirementEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonRequirementEnvironmentBlob val : lst) {
      preVisitAutogenPythonRequirementEnvironmentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenPythonRequirementEnvironmentBlob(
      List<AutogenPythonRequirementEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonRequirementEnvironmentBlob val : lst) {
      preVisitDeepAutogenPythonRequirementEnvironmentBlob(val);
    }
  }

  public List<AutogenPythonRequirementEnvironmentBlob>
      postVisitListOfAutogenPythonRequirementEnvironmentBlob(
          List<AutogenPythonRequirementEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonRequirementEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPythonRequirementEnvironmentBlob val : lst) {
      collect.add(postVisitAutogenPythonRequirementEnvironmentBlob(val));
    }
    return collect;
  }

  public List<AutogenPythonRequirementEnvironmentBlob>
      postVisitDeepListOfAutogenPythonRequirementEnvironmentBlob(
          List<AutogenPythonRequirementEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonRequirementEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenPythonRequirementEnvironmentBlob val : lst) {
      collect.add(postVisitDeepAutogenPythonRequirementEnvironmentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenPythonRequirementEnvironmentBlob(
      AutogenPythonRequirementEnvironmentBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenPythonRequirementEnvironmentBlob(
      AutogenPythonRequirementEnvironmentBlob blob) throws ModelDBException {}

  public AutogenPythonRequirementEnvironmentBlob postVisitAutogenPythonRequirementEnvironmentBlob(
      AutogenPythonRequirementEnvironmentBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenPythonRequirementEnvironmentBlob
      postVisitDeepAutogenPythonRequirementEnvironmentBlob(
          AutogenPythonRequirementEnvironmentBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenPythonRequirementEnvironmentDiff(
      List<AutogenPythonRequirementEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonRequirementEnvironmentDiff val : lst) {
      preVisitAutogenPythonRequirementEnvironmentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenPythonRequirementEnvironmentDiff(
      List<AutogenPythonRequirementEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenPythonRequirementEnvironmentDiff val : lst) {
      preVisitDeepAutogenPythonRequirementEnvironmentDiff(val);
    }
  }

  public List<AutogenPythonRequirementEnvironmentDiff>
      postVisitListOfAutogenPythonRequirementEnvironmentDiff(
          List<AutogenPythonRequirementEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonRequirementEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPythonRequirementEnvironmentDiff val : lst) {
      collect.add(postVisitAutogenPythonRequirementEnvironmentDiff(val));
    }
    return collect;
  }

  public List<AutogenPythonRequirementEnvironmentDiff>
      postVisitDeepListOfAutogenPythonRequirementEnvironmentDiff(
          List<AutogenPythonRequirementEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenPythonRequirementEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenPythonRequirementEnvironmentDiff val : lst) {
      collect.add(postVisitDeepAutogenPythonRequirementEnvironmentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenPythonRequirementEnvironmentDiff(
      AutogenPythonRequirementEnvironmentDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenPythonRequirementEnvironmentDiff(
      AutogenPythonRequirementEnvironmentDiff blob) throws ModelDBException {}

  public AutogenPythonRequirementEnvironmentDiff postVisitAutogenPythonRequirementEnvironmentDiff(
      AutogenPythonRequirementEnvironmentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenPythonRequirementEnvironmentDiff
      postVisitDeepAutogenPythonRequirementEnvironmentDiff(
          AutogenPythonRequirementEnvironmentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenQueryDatasetBlob(List<AutogenQueryDatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetBlob val : lst) {
      preVisitAutogenQueryDatasetBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenQueryDatasetBlob(List<AutogenQueryDatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetBlob val : lst) {
      preVisitDeepAutogenQueryDatasetBlob(val);
    }
  }

  public List<AutogenQueryDatasetBlob> postVisitListOfAutogenQueryDatasetBlob(
      List<AutogenQueryDatasetBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetBlob val : lst) {
      collect.add(postVisitAutogenQueryDatasetBlob(val));
    }
    return collect;
  }

  public List<AutogenQueryDatasetBlob> postVisitDeepListOfAutogenQueryDatasetBlob(
      List<AutogenQueryDatasetBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetBlob val : lst) {
      collect.add(postVisitDeepAutogenQueryDatasetBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenQueryDatasetBlob(AutogenQueryDatasetBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenQueryDatasetBlob(AutogenQueryDatasetBlob blob)
      throws ModelDBException {}

  public AutogenQueryDatasetBlob postVisitAutogenQueryDatasetBlob(AutogenQueryDatasetBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenQueryDatasetBlob postVisitDeepAutogenQueryDatasetBlob(AutogenQueryDatasetBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenQueryDatasetComponentBlob(
      List<AutogenQueryDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetComponentBlob val : lst) {
      preVisitAutogenQueryDatasetComponentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenQueryDatasetComponentBlob(
      List<AutogenQueryDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetComponentBlob val : lst) {
      preVisitDeepAutogenQueryDatasetComponentBlob(val);
    }
  }

  public List<AutogenQueryDatasetComponentBlob> postVisitListOfAutogenQueryDatasetComponentBlob(
      List<AutogenQueryDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetComponentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetComponentBlob val : lst) {
      collect.add(postVisitAutogenQueryDatasetComponentBlob(val));
    }
    return collect;
  }

  public List<AutogenQueryDatasetComponentBlob> postVisitDeepListOfAutogenQueryDatasetComponentBlob(
      List<AutogenQueryDatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetComponentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetComponentBlob val : lst) {
      collect.add(postVisitDeepAutogenQueryDatasetComponentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenQueryDatasetComponentBlob(AutogenQueryDatasetComponentBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenQueryDatasetComponentBlob(AutogenQueryDatasetComponentBlob blob)
      throws ModelDBException {}

  public AutogenQueryDatasetComponentBlob postVisitAutogenQueryDatasetComponentBlob(
      AutogenQueryDatasetComponentBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenQueryDatasetComponentBlob postVisitDeepAutogenQueryDatasetComponentBlob(
      AutogenQueryDatasetComponentBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenQueryDatasetComponentDiff(
      List<AutogenQueryDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetComponentDiff val : lst) {
      preVisitAutogenQueryDatasetComponentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenQueryDatasetComponentDiff(
      List<AutogenQueryDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetComponentDiff val : lst) {
      preVisitDeepAutogenQueryDatasetComponentDiff(val);
    }
  }

  public List<AutogenQueryDatasetComponentDiff> postVisitListOfAutogenQueryDatasetComponentDiff(
      List<AutogenQueryDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetComponentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetComponentDiff val : lst) {
      collect.add(postVisitAutogenQueryDatasetComponentDiff(val));
    }
    return collect;
  }

  public List<AutogenQueryDatasetComponentDiff> postVisitDeepListOfAutogenQueryDatasetComponentDiff(
      List<AutogenQueryDatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetComponentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetComponentDiff val : lst) {
      collect.add(postVisitDeepAutogenQueryDatasetComponentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenQueryDatasetComponentDiff(AutogenQueryDatasetComponentDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenQueryDatasetComponentDiff(AutogenQueryDatasetComponentDiff blob)
      throws ModelDBException {}

  public AutogenQueryDatasetComponentDiff postVisitAutogenQueryDatasetComponentDiff(
      AutogenQueryDatasetComponentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenQueryDatasetComponentDiff postVisitDeepAutogenQueryDatasetComponentDiff(
      AutogenQueryDatasetComponentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenQueryDatasetDiff(List<AutogenQueryDatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetDiff val : lst) {
      preVisitAutogenQueryDatasetDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenQueryDatasetDiff(List<AutogenQueryDatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenQueryDatasetDiff val : lst) {
      preVisitDeepAutogenQueryDatasetDiff(val);
    }
  }

  public List<AutogenQueryDatasetDiff> postVisitListOfAutogenQueryDatasetDiff(
      List<AutogenQueryDatasetDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetDiff val : lst) {
      collect.add(postVisitAutogenQueryDatasetDiff(val));
    }
    return collect;
  }

  public List<AutogenQueryDatasetDiff> postVisitDeepListOfAutogenQueryDatasetDiff(
      List<AutogenQueryDatasetDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenQueryDatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenQueryDatasetDiff val : lst) {
      collect.add(postVisitDeepAutogenQueryDatasetDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenQueryDatasetDiff(AutogenQueryDatasetDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenQueryDatasetDiff(AutogenQueryDatasetDiff blob)
      throws ModelDBException {}

  public AutogenQueryDatasetDiff postVisitAutogenQueryDatasetDiff(AutogenQueryDatasetDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenQueryDatasetDiff postVisitDeepAutogenQueryDatasetDiff(AutogenQueryDatasetDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenS3DatasetBlob(List<AutogenS3DatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetBlob val : lst) {
      preVisitAutogenS3DatasetBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenS3DatasetBlob(List<AutogenS3DatasetBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetBlob val : lst) {
      preVisitDeepAutogenS3DatasetBlob(val);
    }
  }

  public List<AutogenS3DatasetBlob> postVisitListOfAutogenS3DatasetBlob(
      List<AutogenS3DatasetBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetBlob val : lst) {
      collect.add(postVisitAutogenS3DatasetBlob(val));
    }
    return collect;
  }

  public List<AutogenS3DatasetBlob> postVisitDeepListOfAutogenS3DatasetBlob(
      List<AutogenS3DatasetBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetBlob> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetBlob val : lst) {
      collect.add(postVisitDeepAutogenS3DatasetBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenS3DatasetBlob(AutogenS3DatasetBlob blob) throws ModelDBException {}

  public void preVisitDeepAutogenS3DatasetBlob(AutogenS3DatasetBlob blob) throws ModelDBException {}

  public AutogenS3DatasetBlob postVisitAutogenS3DatasetBlob(AutogenS3DatasetBlob blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenS3DatasetBlob postVisitDeepAutogenS3DatasetBlob(AutogenS3DatasetBlob blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenS3DatasetComponentBlob(List<AutogenS3DatasetComponentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetComponentBlob val : lst) {
      preVisitAutogenS3DatasetComponentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenS3DatasetComponentBlob(
      List<AutogenS3DatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetComponentBlob val : lst) {
      preVisitDeepAutogenS3DatasetComponentBlob(val);
    }
  }

  public List<AutogenS3DatasetComponentBlob> postVisitListOfAutogenS3DatasetComponentBlob(
      List<AutogenS3DatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetComponentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetComponentBlob val : lst) {
      collect.add(postVisitAutogenS3DatasetComponentBlob(val));
    }
    return collect;
  }

  public List<AutogenS3DatasetComponentBlob> postVisitDeepListOfAutogenS3DatasetComponentBlob(
      List<AutogenS3DatasetComponentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetComponentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetComponentBlob val : lst) {
      collect.add(postVisitDeepAutogenS3DatasetComponentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenS3DatasetComponentBlob(AutogenS3DatasetComponentBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenS3DatasetComponentBlob(AutogenS3DatasetComponentBlob blob)
      throws ModelDBException {}

  public AutogenS3DatasetComponentBlob postVisitAutogenS3DatasetComponentBlob(
      AutogenS3DatasetComponentBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenS3DatasetComponentBlob postVisitDeepAutogenS3DatasetComponentBlob(
      AutogenS3DatasetComponentBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenS3DatasetComponentDiff(List<AutogenS3DatasetComponentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetComponentDiff val : lst) {
      preVisitAutogenS3DatasetComponentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenS3DatasetComponentDiff(
      List<AutogenS3DatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetComponentDiff val : lst) {
      preVisitDeepAutogenS3DatasetComponentDiff(val);
    }
  }

  public List<AutogenS3DatasetComponentDiff> postVisitListOfAutogenS3DatasetComponentDiff(
      List<AutogenS3DatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetComponentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetComponentDiff val : lst) {
      collect.add(postVisitAutogenS3DatasetComponentDiff(val));
    }
    return collect;
  }

  public List<AutogenS3DatasetComponentDiff> postVisitDeepListOfAutogenS3DatasetComponentDiff(
      List<AutogenS3DatasetComponentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetComponentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetComponentDiff val : lst) {
      collect.add(postVisitDeepAutogenS3DatasetComponentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenS3DatasetComponentDiff(AutogenS3DatasetComponentDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenS3DatasetComponentDiff(AutogenS3DatasetComponentDiff blob)
      throws ModelDBException {}

  public AutogenS3DatasetComponentDiff postVisitAutogenS3DatasetComponentDiff(
      AutogenS3DatasetComponentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenS3DatasetComponentDiff postVisitDeepAutogenS3DatasetComponentDiff(
      AutogenS3DatasetComponentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenS3DatasetDiff(List<AutogenS3DatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetDiff val : lst) {
      preVisitAutogenS3DatasetDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenS3DatasetDiff(List<AutogenS3DatasetDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenS3DatasetDiff val : lst) {
      preVisitDeepAutogenS3DatasetDiff(val);
    }
  }

  public List<AutogenS3DatasetDiff> postVisitListOfAutogenS3DatasetDiff(
      List<AutogenS3DatasetDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetDiff val : lst) {
      collect.add(postVisitAutogenS3DatasetDiff(val));
    }
    return collect;
  }

  public List<AutogenS3DatasetDiff> postVisitDeepListOfAutogenS3DatasetDiff(
      List<AutogenS3DatasetDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenS3DatasetDiff> collect = new ArrayList<>(lst.size());
    for (AutogenS3DatasetDiff val : lst) {
      collect.add(postVisitDeepAutogenS3DatasetDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenS3DatasetDiff(AutogenS3DatasetDiff blob) throws ModelDBException {}

  public void preVisitDeepAutogenS3DatasetDiff(AutogenS3DatasetDiff blob) throws ModelDBException {}

  public AutogenS3DatasetDiff postVisitAutogenS3DatasetDiff(AutogenS3DatasetDiff blob)
      throws ModelDBException {
    return blob;
  }

  public AutogenS3DatasetDiff postVisitDeepAutogenS3DatasetDiff(AutogenS3DatasetDiff blob)
      throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenVersionEnvironmentBlob(List<AutogenVersionEnvironmentBlob> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenVersionEnvironmentBlob val : lst) {
      preVisitAutogenVersionEnvironmentBlob(val);
    }
  }

  public void preVisitDeepListOfAutogenVersionEnvironmentBlob(
      List<AutogenVersionEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenVersionEnvironmentBlob val : lst) {
      preVisitDeepAutogenVersionEnvironmentBlob(val);
    }
  }

  public List<AutogenVersionEnvironmentBlob> postVisitListOfAutogenVersionEnvironmentBlob(
      List<AutogenVersionEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenVersionEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenVersionEnvironmentBlob val : lst) {
      collect.add(postVisitAutogenVersionEnvironmentBlob(val));
    }
    return collect;
  }

  public List<AutogenVersionEnvironmentBlob> postVisitDeepListOfAutogenVersionEnvironmentBlob(
      List<AutogenVersionEnvironmentBlob> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenVersionEnvironmentBlob> collect = new ArrayList<>(lst.size());
    for (AutogenVersionEnvironmentBlob val : lst) {
      collect.add(postVisitDeepAutogenVersionEnvironmentBlob(val));
    }
    return collect;
  }

  public void preVisitAutogenVersionEnvironmentBlob(AutogenVersionEnvironmentBlob blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenVersionEnvironmentBlob(AutogenVersionEnvironmentBlob blob)
      throws ModelDBException {}

  public AutogenVersionEnvironmentBlob postVisitAutogenVersionEnvironmentBlob(
      AutogenVersionEnvironmentBlob blob) throws ModelDBException {
    return blob;
  }

  public AutogenVersionEnvironmentBlob postVisitDeepAutogenVersionEnvironmentBlob(
      AutogenVersionEnvironmentBlob blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfAutogenVersionEnvironmentDiff(List<AutogenVersionEnvironmentDiff> lst)
      throws ModelDBException {
    if (lst == null) return;
    for (AutogenVersionEnvironmentDiff val : lst) {
      preVisitAutogenVersionEnvironmentDiff(val);
    }
  }

  public void preVisitDeepListOfAutogenVersionEnvironmentDiff(
      List<AutogenVersionEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenVersionEnvironmentDiff val : lst) {
      preVisitDeepAutogenVersionEnvironmentDiff(val);
    }
  }

  public List<AutogenVersionEnvironmentDiff> postVisitListOfAutogenVersionEnvironmentDiff(
      List<AutogenVersionEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenVersionEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenVersionEnvironmentDiff val : lst) {
      collect.add(postVisitAutogenVersionEnvironmentDiff(val));
    }
    return collect;
  }

  public List<AutogenVersionEnvironmentDiff> postVisitDeepListOfAutogenVersionEnvironmentDiff(
      List<AutogenVersionEnvironmentDiff> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenVersionEnvironmentDiff> collect = new ArrayList<>(lst.size());
    for (AutogenVersionEnvironmentDiff val : lst) {
      collect.add(postVisitDeepAutogenVersionEnvironmentDiff(val));
    }
    return collect;
  }

  public void preVisitAutogenVersionEnvironmentDiff(AutogenVersionEnvironmentDiff blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenVersionEnvironmentDiff(AutogenVersionEnvironmentDiff blob)
      throws ModelDBException {}

  public AutogenVersionEnvironmentDiff postVisitAutogenVersionEnvironmentDiff(
      AutogenVersionEnvironmentDiff blob) throws ModelDBException {
    return blob;
  }

  public AutogenVersionEnvironmentDiff postVisitDeepAutogenVersionEnvironmentDiff(
      AutogenVersionEnvironmentDiff blob) throws ModelDBException {
    if (blob != null) return blob.postVisitDeep(this);
    return null;
  }

  public void preVisitListOfString(List<String> lst) throws ModelDBException {
    if (lst == null) return;
    for (String val : lst) {
      preVisitString(val);
    }
  }

  public void preVisitDeepListOfString(List<String> lst) throws ModelDBException {
    if (lst == null) return;
    for (String val : lst) {
      preVisitDeepString(val);
    }
  }

  public List<String> postVisitListOfString(List<String> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<String> collect = new ArrayList<>(lst.size());
    for (String val : lst) {
      collect.add(postVisitString(val));
    }
    return collect;
  }

  public List<String> postVisitDeepListOfString(List<String> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<String> collect = new ArrayList<>(lst.size());
    for (String val : lst) {
      collect.add(postVisitDeepString(val));
    }
    return collect;
  }

  public void preVisitString(String blob) throws ModelDBException {}

  public void preVisitDeepString(String blob) throws ModelDBException {}

  public String postVisitString(String blob) throws ModelDBException {
    return blob;
  }

  public String postVisitDeepString(String blob) throws ModelDBException {
    return blob;
  }

  public void preVisitListOfBoolean(List<Boolean> lst) throws ModelDBException {
    if (lst == null) return;
    for (Boolean val : lst) {
      preVisitBoolean(val);
    }
  }

  public void preVisitDeepListOfBoolean(List<Boolean> lst) throws ModelDBException {
    if (lst == null) return;
    for (Boolean val : lst) {
      preVisitDeepBoolean(val);
    }
  }

  public List<Boolean> postVisitListOfBoolean(List<Boolean> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Boolean> collect = new ArrayList<>(lst.size());
    for (Boolean val : lst) {
      collect.add(postVisitBoolean(val));
    }
    return collect;
  }

  public List<Boolean> postVisitDeepListOfBoolean(List<Boolean> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Boolean> collect = new ArrayList<>(lst.size());
    for (Boolean val : lst) {
      collect.add(postVisitDeepBoolean(val));
    }
    return collect;
  }

  public void preVisitBoolean(Boolean blob) throws ModelDBException {}

  public void preVisitDeepBoolean(Boolean blob) throws ModelDBException {}

  public Boolean postVisitBoolean(Boolean blob) throws ModelDBException {
    return blob;
  }

  public Boolean postVisitDeepBoolean(Boolean blob) throws ModelDBException {
    return blob;
  }

  public void preVisitListOfDouble(List<Double> lst) throws ModelDBException {
    if (lst == null) return;
    for (Double val : lst) {
      preVisitDouble(val);
    }
  }

  public void preVisitDeepListOfDouble(List<Double> lst) throws ModelDBException {
    if (lst == null) return;
    for (Double val : lst) {
      preVisitDeepDouble(val);
    }
  }

  public List<Double> postVisitListOfDouble(List<Double> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Double> collect = new ArrayList<>(lst.size());
    for (Double val : lst) {
      collect.add(postVisitDouble(val));
    }
    return collect;
  }

  public List<Double> postVisitDeepListOfDouble(List<Double> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Double> collect = new ArrayList<>(lst.size());
    for (Double val : lst) {
      collect.add(postVisitDeepDouble(val));
    }
    return collect;
  }

  public void preVisitDouble(Double blob) throws ModelDBException {}

  public void preVisitDeepDouble(Double blob) throws ModelDBException {}

  public Double postVisitDouble(Double blob) throws ModelDBException {
    return blob;
  }

  public Double postVisitDeepDouble(Double blob) throws ModelDBException {
    return blob;
  }

  public void preVisitListOfInteger(List<Integer> lst) throws ModelDBException {
    if (lst == null) return;
    for (Integer val : lst) {
      preVisitInteger(val);
    }
  }

  public void preVisitDeepListOfInteger(List<Integer> lst) throws ModelDBException {
    if (lst == null) return;
    for (Integer val : lst) {
      preVisitDeepInteger(val);
    }
  }

  public List<Integer> postVisitListOfInteger(List<Integer> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Integer> collect = new ArrayList<>(lst.size());
    for (Integer val : lst) {
      collect.add(postVisitInteger(val));
    }
    return collect;
  }

  public List<Integer> postVisitDeepListOfInteger(List<Integer> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Integer> collect = new ArrayList<>(lst.size());
    for (Integer val : lst) {
      collect.add(postVisitDeepInteger(val));
    }
    return collect;
  }

  public void preVisitInteger(Integer blob) throws ModelDBException {}

  public void preVisitDeepInteger(Integer blob) throws ModelDBException {}

  public Integer postVisitInteger(Integer blob) throws ModelDBException {
    return blob;
  }

  public Integer postVisitDeepInteger(Integer blob) throws ModelDBException {
    return blob;
  }

  public void preVisitListOfLong(List<Long> lst) throws ModelDBException {
    if (lst == null) return;
    for (Long val : lst) {
      preVisitLong(val);
    }
  }

  public void preVisitDeepListOfLong(List<Long> lst) throws ModelDBException {
    if (lst == null) return;
    for (Long val : lst) {
      preVisitDeepLong(val);
    }
  }

  public List<Long> postVisitListOfLong(List<Long> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Long> collect = new ArrayList<>(lst.size());
    for (Long val : lst) {
      collect.add(postVisitLong(val));
    }
    return collect;
  }

  public List<Long> postVisitDeepListOfLong(List<Long> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Long> collect = new ArrayList<>(lst.size());
    for (Long val : lst) {
      collect.add(postVisitDeepLong(val));
    }
    return collect;
  }

  public void preVisitLong(Long blob) throws ModelDBException {}

  public void preVisitDeepLong(Long blob) throws ModelDBException {}

  public Long postVisitLong(Long blob) throws ModelDBException {
    return blob;
  }

  public Long postVisitDeepLong(Long blob) throws ModelDBException {
    return blob;
  }

  public void preVisitListOfFloat(List<Float> lst) throws ModelDBException {
    if (lst == null) return;
    for (Float val : lst) {
      preVisitFloat(val);
    }
  }

  public void preVisitDeepListOfFloat(List<Float> lst) throws ModelDBException {
    if (lst == null) return;
    for (Float val : lst) {
      preVisitDeepFloat(val);
    }
  }

  public List<Float> postVisitListOfFloat(List<Float> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Float> collect = new ArrayList<>(lst.size());
    for (Float val : lst) {
      collect.add(postVisitFloat(val));
    }
    return collect;
  }

  public List<Float> postVisitDeepListOfFloat(List<Float> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<Float> collect = new ArrayList<>(lst.size());
    for (Float val : lst) {
      collect.add(postVisitDeepFloat(val));
    }
    return collect;
  }

  public void preVisitFloat(Float blob) throws ModelDBException {}

  public void preVisitDeepFloat(Float blob) throws ModelDBException {}

  public Float postVisitFloat(Float blob) throws ModelDBException {
    return blob;
  }

  public Float postVisitDeepFloat(Float blob) throws ModelDBException {
    return blob;
  }

  public void preVisitListOfAutogenDiffStatusEnumDiffStatus(
      List<AutogenDiffStatusEnumDiffStatus> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenDiffStatusEnumDiffStatus val : lst) {
      preVisitAutogenDiffStatusEnumDiffStatus(val);
    }
  }

  public void preVisitDeepListOfAutogenDiffStatusEnumDiffStatus(
      List<AutogenDiffStatusEnumDiffStatus> lst) throws ModelDBException {
    if (lst == null) return;
    for (AutogenDiffStatusEnumDiffStatus val : lst) {
      preVisitDeepAutogenDiffStatusEnumDiffStatus(val);
    }
  }

  public List<AutogenDiffStatusEnumDiffStatus> postVisitListOfAutogenDiffStatusEnumDiffStatus(
      List<AutogenDiffStatusEnumDiffStatus> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDiffStatusEnumDiffStatus> collect = new ArrayList<>(lst.size());
    for (AutogenDiffStatusEnumDiffStatus val : lst) {
      collect.add(postVisitAutogenDiffStatusEnumDiffStatus(val));
    }
    return collect;
  }

  public List<AutogenDiffStatusEnumDiffStatus> postVisitDeepListOfAutogenDiffStatusEnumDiffStatus(
      List<AutogenDiffStatusEnumDiffStatus> lst) throws ModelDBException {
    if (lst == null) return null;
    final List<AutogenDiffStatusEnumDiffStatus> collect = new ArrayList<>(lst.size());
    for (AutogenDiffStatusEnumDiffStatus val : lst) {
      collect.add(postVisitDeepAutogenDiffStatusEnumDiffStatus(val));
    }
    return collect;
  }

  public void preVisitAutogenDiffStatusEnumDiffStatus(AutogenDiffStatusEnumDiffStatus blob)
      throws ModelDBException {}

  public void preVisitDeepAutogenDiffStatusEnumDiffStatus(AutogenDiffStatusEnumDiffStatus blob)
      throws ModelDBException {}

  public AutogenDiffStatusEnumDiffStatus postVisitAutogenDiffStatusEnumDiffStatus(
      AutogenDiffStatusEnumDiffStatus blob) throws ModelDBException {
    return blob;
  }

  public AutogenDiffStatusEnumDiffStatus postVisitDeepAutogenDiffStatusEnumDiffStatus(
      AutogenDiffStatusEnumDiffStatus blob) throws ModelDBException {
    return blob;
  }

  public <T> T genericPostVisitDeep(T b) throws ModelDBException {
    if (b instanceof AutogenBlobDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenBlobDiff((AutogenBlobDiff) b));
    }
    if (b instanceof AutogenBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenBlob((AutogenBlob) b));
    }
    if (b instanceof AutogenCodeBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenCodeBlob((AutogenCodeBlob) b));
    }
    if (b instanceof AutogenCodeDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenCodeDiff((AutogenCodeDiff) b));
    }
    if (b instanceof AutogenCommandLineEnvironmentDiff) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenCommandLineEnvironmentDiff(
                  (AutogenCommandLineEnvironmentDiff) b));
    }
    if (b instanceof AutogenConfigBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenConfigBlob((AutogenConfigBlob) b));
    }
    if (b instanceof AutogenConfigDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenConfigDiff((AutogenConfigDiff) b));
    }
    if (b instanceof AutogenContinuousHyperparameterSetConfigBlob) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenContinuousHyperparameterSetConfigBlob(
                  (AutogenContinuousHyperparameterSetConfigBlob) b));
    }
    if (b instanceof AutogenDatasetBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenDatasetBlob((AutogenDatasetBlob) b));
    }
    if (b instanceof AutogenDatasetDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenDatasetDiff((AutogenDatasetDiff) b));
    }
    if (b instanceof AutogenDiscreteHyperparameterSetConfigBlob) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenDiscreteHyperparameterSetConfigBlob(
                  (AutogenDiscreteHyperparameterSetConfigBlob) b));
    }
    if (b instanceof AutogenDockerEnvironmentBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenDockerEnvironmentBlob((AutogenDockerEnvironmentBlob) b));
    }
    if (b instanceof AutogenDockerEnvironmentDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenDockerEnvironmentDiff((AutogenDockerEnvironmentDiff) b));
    }
    if (b instanceof AutogenEnvironmentBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenEnvironmentBlob((AutogenEnvironmentBlob) b));
    }
    if (b instanceof AutogenEnvironmentDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenEnvironmentDiff((AutogenEnvironmentDiff) b));
    }
    if (b instanceof AutogenEnvironmentVariablesBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenEnvironmentVariablesBlob((AutogenEnvironmentVariablesBlob) b));
    }
    if (b instanceof AutogenEnvironmentVariablesDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenEnvironmentVariablesDiff((AutogenEnvironmentVariablesDiff) b));
    }
    if (b instanceof AutogenGitCodeBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenGitCodeBlob((AutogenGitCodeBlob) b));
    }
    if (b instanceof AutogenGitCodeDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenGitCodeDiff((AutogenGitCodeDiff) b));
    }
    if (b instanceof AutogenHyperparameterConfigBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenHyperparameterConfigBlob((AutogenHyperparameterConfigBlob) b));
    }
    if (b instanceof AutogenHyperparameterConfigDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenHyperparameterConfigDiff((AutogenHyperparameterConfigDiff) b));
    }
    if (b instanceof AutogenHyperparameterSetConfigBlob) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenHyperparameterSetConfigBlob(
                  (AutogenHyperparameterSetConfigBlob) b));
    }
    if (b instanceof AutogenHyperparameterSetConfigDiff) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenHyperparameterSetConfigDiff(
                  (AutogenHyperparameterSetConfigDiff) b));
    }
    if (b instanceof AutogenHyperparameterValuesConfigBlob) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenHyperparameterValuesConfigBlob(
                  (AutogenHyperparameterValuesConfigBlob) b));
    }
    if (b instanceof AutogenNotebookCodeBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenNotebookCodeBlob((AutogenNotebookCodeBlob) b));
    }
    if (b instanceof AutogenNotebookCodeDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenNotebookCodeDiff((AutogenNotebookCodeDiff) b));
    }
    if (b instanceof AutogenPathDatasetBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenPathDatasetBlob((AutogenPathDatasetBlob) b));
    }
    if (b instanceof AutogenPathDatasetComponentBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenPathDatasetComponentBlob((AutogenPathDatasetComponentBlob) b));
    }
    if (b instanceof AutogenPathDatasetComponentDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenPathDatasetComponentDiff((AutogenPathDatasetComponentDiff) b));
    }
    if (b instanceof AutogenPathDatasetDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenPathDatasetDiff((AutogenPathDatasetDiff) b));
    }
    if (b instanceof AutogenPythonEnvironmentBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenPythonEnvironmentBlob((AutogenPythonEnvironmentBlob) b));
    }
    if (b instanceof AutogenPythonEnvironmentDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenPythonEnvironmentDiff((AutogenPythonEnvironmentDiff) b));
    }
    if (b instanceof AutogenPythonRequirementEnvironmentBlob) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenPythonRequirementEnvironmentBlob(
                  (AutogenPythonRequirementEnvironmentBlob) b));
    }
    if (b instanceof AutogenPythonRequirementEnvironmentDiff) {
      return Utils.removeEmpty(
          (T)
              postVisitDeepAutogenPythonRequirementEnvironmentDiff(
                  (AutogenPythonRequirementEnvironmentDiff) b));
    }
    if (b instanceof AutogenQueryDatasetBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenQueryDatasetBlob((AutogenQueryDatasetBlob) b));
    }
    if (b instanceof AutogenQueryDatasetComponentBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenQueryDatasetComponentBlob((AutogenQueryDatasetComponentBlob) b));
    }
    if (b instanceof AutogenQueryDatasetComponentDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenQueryDatasetComponentDiff((AutogenQueryDatasetComponentDiff) b));
    }
    if (b instanceof AutogenQueryDatasetDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenQueryDatasetDiff((AutogenQueryDatasetDiff) b));
    }
    if (b instanceof AutogenS3DatasetBlob) {
      return Utils.removeEmpty((T) postVisitDeepAutogenS3DatasetBlob((AutogenS3DatasetBlob) b));
    }
    if (b instanceof AutogenS3DatasetComponentBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenS3DatasetComponentBlob((AutogenS3DatasetComponentBlob) b));
    }
    if (b instanceof AutogenS3DatasetComponentDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenS3DatasetComponentDiff((AutogenS3DatasetComponentDiff) b));
    }
    if (b instanceof AutogenS3DatasetDiff) {
      return Utils.removeEmpty((T) postVisitDeepAutogenS3DatasetDiff((AutogenS3DatasetDiff) b));
    }
    if (b instanceof AutogenVersionEnvironmentBlob) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenVersionEnvironmentBlob((AutogenVersionEnvironmentBlob) b));
    }
    if (b instanceof AutogenVersionEnvironmentDiff) {
      return Utils.removeEmpty(
          (T) postVisitDeepAutogenVersionEnvironmentDiff((AutogenVersionEnvironmentDiff) b));
    }
    return Utils.removeEmpty(b);
  }
}
