docs: public static void configureSARLProject(IProject project, boolean addNatures,
  			boolean configureJavaNature, boolean createFolders, IProgressMonitor monitor) {
  		try {
  			final SubMonitor subMonitor = SubMonitor.convert(monitor, 11);
  			// Add Natures
  			final IStatus status = Status.OK_STATUS;
  			if (addNatures) {
  				addSarlNatures(project, subMonitor.newChild(1));
  				if (status != null && !status.isOK()) {
  					SARLEclipsePlugin.getDefault().getLog().log(status);
  				}
  			}
  
  			// Ensure SARL specific folders.
  			final OutParameter<IFolder[]> sourceFolders = new OutParameter<>();
  			final OutParameter<IFolder[]> testSourceFolders = new OutParameter<>();
  			final OutParameter<IFolder[]> generationFolders = new OutParameter<>();
  			final OutParameter<IFolder[]> testGenerationFolders = new OutParameter<>();
  			final OutParameter<IFolder> generationFolder = new OutParameter<>();
  			final OutParameter<IFolder> outputFolder = new OutParameter<>();
  			final OutParameter<IFolder> testOutputFolder = new OutParameter<>();
  			ensureSourceFolders(project, createFolders, subMonitor,
  					sourceFolders, testSourceFolders,
  					generationFolders, testGenerationFolders,
  					generationFolder,
  					outputFolder, testOutputFolder);
  
  			// SARL specific configuration
  			SARLPreferences.setSpecificSARLConfigurationFor(project, generationFolder.get().getProjectRelativePath());
  			subMonitor.worked(1);
  
  			// Create the Java project
  			if (configureJavaNature) {
  
  				if (!addNatures) {
  					addNatures(project, subMonitor.newChild(1), JavaCore.NATURE_ID);
  				}
  
  				final IJavaProject javaProject = JavaCore.create(project);
  				subMonitor.worked(1);
  
  				// Build path
  				BuildPathsBlock.flush(
  						buildClassPathEntries(javaProject,
  								sourceFolders.get(),
  								testSourceFolders.get(),
  								generationFolders.get(),
  								testGenerationFolders.get(),
  								testOutputFolder.get().getFullPath(),
  								false, true),
  						outputFolder.get().getFullPath(), javaProject, null, subMonitor.newChild(1));
  			}
  			subMonitor.done();
  		} catch (CoreException exception) {
  			SARLEclipsePlugin.getDefault().log(exception);
  		}
  	}