private static <T> boolean processProject(
      MavenDomProjectModel projectDom,
      MavenProject mavenProjectOrNull,
      Processor<T> processor,
      Project project,
      Function<? super MavenDomProfile, T> domProfileFunction,
      Function<? super MavenDomProjectModel, T> projectDomFunction) {

    if (processProfilesXml(
        MavenDomUtil.getVirtualFile(projectDom),
        mavenProjectOrNull,
        processor,
        project,
        domProfileFunction)) {
      return true;
    }

    if (processProfiles(
        projectDom.getProfiles(), mavenProjectOrNull, processor, domProfileFunction)) return true;

    T t = projectDomFunction.fun(projectDom);
    return t == null ? false : processor.process(t);
  }