/** Resolve the element IDs to interface references */ public void resolveReferences() { if (!resolved) { resolved = true; // Resolve superClass if (superClassId != null && superClassId.length() > 0) { superClass = ManagedBuildManager.getExtensionProjectType(superClassId); if (superClass == null) { // Report error ManagedBuildManager.outputResolveError( "superClass", //$NON-NLS-1$ superClassId, "projectType", //$NON-NLS-1$ getId()); } } // Add configurations from our superClass that are not overridden here if (superClass != null) { ((ProjectType) superClass).resolveReferences(); IConfiguration[] superConfigs = superClass.getConfigurations(); for (int i = 0; i < superConfigs.length; i++) { String superId = superConfigs[i].getId(); check: { IConfiguration[] currentConfigs = getConfigurations(); for (int j = 0; j < currentConfigs.length; j++) { IConfiguration config = currentConfigs[j]; while (config.getParent() != null) { if (config.getParent().getId().equals(superId)) break check; config = config.getParent(); } } addConfiguration((Configuration) superConfigs[i]); } // end check } } // Call resolve references on any children List<Configuration> configurationList = getConfigurationList(); for (Configuration current : configurationList) { current.resolveReferences(); } } }