}
@Override
public boolean applyToProject(IFlexProject project)
{
final IWorkspace workspace = project.getWorkspace();
boolean success = processConfiguration();
workspace.startIdleState();
try
{
if (configuration == null)
return false;
if (project instanceof FlexProject)
{
FlexProject flexProject = (FlexProject)project;
FlexProjectConfigurator.configure(flexProject, configuration);
setupCompatibilityVersion(flexProject);
setupConfigVariables(flexProject);
setupLocaleSettings(flexProject);
setupServices(flexProject);
setupThemeFiles(flexProject);
setupFlex(flexProject);
setupCodegenOptions(flexProject);
}
project.setRuntimeSharedLibraryPath(getRSLSettingsFromConfiguration(configuration));
if (!setupProjectLibraries(project))
success = false;
setupNamespaces(project);
}
finally
{
workspace.endIdleState(IWorkspace.NIL_COMPILATIONUNITS_TO_UPDATE);
}
if (!setupSources(project))
success = false;
return success;
}