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 ) ; } }
Configure the SARL project .