docs: protected static IJavaProject[] getProjectSearchOrder(String projectName) {
  
  		ArrayList<String> projectNames= new ArrayList<>();
  		projectNames.add(projectName);
  
  		int nextProject= 0;
  		while (nextProject < projectNames.size()) {
  			String nextProjectName= projectNames.get(nextProject);
  			IJavaProject jproject= getJavaProject(nextProjectName);
  
  			if (jproject != null) {
  				try {
  					String[] childProjectNames= jproject.getRequiredProjectNames();
  					for (int i= 0; i < childProjectNames.length; i++) {
  						if (!projectNames.contains(childProjectNames[i])) {
  							projectNames.add(childProjectNames[i]);
  						}
  					}
  				} catch (JavaModelException e) {
  					JavaPlugin.log(e);
  				}
  			}
  			nextProject+= 1;
  		}
  
  		ArrayList<IJavaProject> result= new ArrayList<>();
  		for (int i= 0, size= projectNames.size(); i < size; i++) {
  			String name= projectNames.get(i);
  			IJavaProject project= getJavaProject(name);
  			if (project != null)
  				result.add(project);
  		}
  
  		return result.toArray(new IJavaProject[result.size()]);
  	}