code: public void preCheckout(AbstractBuild<?,?> build, Launcher launcher, BuildListener listener) throws IOException, InterruptedException {
          AbstractProject<?, ?> project = build.getProject();
          if (project instanceof BuildableItemWithBuildWrappers) {
                 BuildableItemWithBuildWrappers biwbw = (BuildableItemWithBuildWrappers) project;
                 for (BuildWrapper bw : biwbw.getBuildWrappersList())
                     bw.preCheckout(build,launcher,listener);
             }
      }
docs: Performs the pre checkout step.
  
  This method is called by the {@link Executor} that's carrying out the build.
  
  @param build
  Build being in progress. Never null.
  @param launcher
  Allows you to launch process on the node where the build is actually running. Never null.
  @param listener
  Allows you to write to console output and report errors. Never null.