docs: private void doBuild(final Map<?, ?> args, final IProgressMonitor monitor, int kind) throws CoreException {
          boolean incremental = (kind == IncrementalProjectBuilder.INCREMENTAL_BUILD
                  || kind == IncrementalProjectBuilder.AUTO_BUILD);
          IProject project = getProject();
          IResource resource = project;
          List<WorkItem> files;
          if (incremental) {
              IResourceDelta resourceDelta = getDelta(project);
              boolean configChanged = !isConfigUnchanged(resourceDelta);
              if (configChanged) {
                  files = new ArrayList<>();
                  files.add(new WorkItem(project));
              } else {
                  files = ResourceUtils.collectIncremental(resourceDelta);
                  if(files.size() == 1){
                      IResource corespondingResource = files.get(0).getCorespondingResource();
                      if(corespondingResource != null) {
                          resource = corespondingResource;
                      }
                  }
              }
          } else {
              files = new ArrayList<>();
              files.add(new WorkItem(project));
          }
  
          work(resource, files, monitor);
      }