List<ExecutableCapability> getCompilerCapabilities()
{
List<ExecutableCapability> platformCapabilities = new ArrayList<ExecutableCapability>();
for ( Iterator i = compilerPlugins.iterator(); i.hasNext(); )
{
CompilerPlugin plugin = (CompilerPlugin) i.next();
String language = plugin.getLanguage();
String pluginClassName = plugin.getPluginClass();
String executable = plugin.getExecutable();
String compilerVendor = plugin.getVendor();
String identifier = plugin.getIdentifier();
String profile = plugin.getProfile();
List<String> frameworkVersions = plugin.getFrameworkVersions();
List<String> coreAssemblies = plugin.getAssemblies();
String defaultAssemblyPath = plugin.getDefaultAssemblyPath();
List platforms = plugin.getPlatforms();
for ( Iterator j = platforms.iterator(); j.hasNext(); )
{
CompilerCapability platformCapability =
(CompilerCapability) CompilerCapability.Factory.createDefaultExecutableCapability();
Platform platform = (Platform) j.next();
String os = platform.getOperatingSystem();
platformCapability.setLanguage( language );
platformCapability.setOperatingSystem( os );
platformCapability.setPluginClassName( pluginClassName );
platformCapability.setExecutable( executable );
platformCapability.setIdentifier( identifier );
platformCapability.setFrameworkVersions( frameworkVersions );
platformCapability.setProfile( profile );
platformCapability.setAssemblyPath( defaultAssemblyPath );
String arch = platform.getArchitecture();
CommandFilter filter = plugin.getCommandFilter();
platformCapability.setCoreAssemblies( coreAssemblies );
platformCapability.setNetDependencyId( plugin.getNetDependencyId());
List<String> includes = ( filter != null ) ? filter.getIncludes() : new ArrayList<String>();
List<String> excludes = ( filter != null ) ? filter.getExcludes() : new ArrayList<String>();
platformCapability.setCommandCapability(
CommandCapability.Factory.createDefaultCommandCapability( includes, excludes ) );