mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-28 11:25:35 +02:00
API cleanup & JavaDoc
This commit is contained in:
parent
ba7591a95b
commit
da8e44baef
13 changed files with 222 additions and 210 deletions
|
@ -48,7 +48,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
private static final String LANGUAGE_ID = "language.test.id";
|
private static final String LANGUAGE_ID = "language.test.id";
|
||||||
private static final String CUSTOM_PARAMETER = "customParameter";
|
private static final String CUSTOM_PARAMETER = "customParameter";
|
||||||
private static final String ELEM_TEST = "test";
|
private static final String ELEM_TEST = "test";
|
||||||
|
|
||||||
// those attributes must match that in AbstractBuiltinSpecsDetector
|
// those attributes must match that in AbstractBuiltinSpecsDetector
|
||||||
private static final String ATTR_CONSOLE = "console"; //$NON-NLS-1$
|
private static final String ATTR_CONSOLE = "console"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
return isExecuted;
|
return isExecuted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MockConsoleBuiltinSpecsDetector extends AbstractBuiltinSpecsDetector {
|
private class MockConsoleBuiltinSpecsDetector extends AbstractBuiltinSpecsDetector {
|
||||||
@SuppressWarnings("nls")
|
@SuppressWarnings("nls")
|
||||||
private final AbstractOptionParser[] optionParsers = {
|
private final AbstractOptionParser[] optionParsers = {
|
||||||
|
@ -116,7 +116,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
return optionParsers;
|
return optionParsers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
|
@ -141,35 +141,41 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAbstractBuiltinSpecsDetector_GettersSetters() throws Exception {
|
public void testAbstractBuiltinSpecsDetector_GettersSetters() throws Exception {
|
||||||
// define mock detector
|
{
|
||||||
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
// provider configured with null parameters
|
||||||
|
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
||||||
detector.configureProvider(PROVIDER_ID, PROVIDER_NAME, null, null, null);
|
detector.configureProvider(PROVIDER_ID, PROVIDER_NAME, null, null, null);
|
||||||
assertEquals(PROVIDER_ID, detector.getId());
|
|
||||||
assertEquals(PROVIDER_NAME, detector.getName());
|
|
||||||
assertEquals(null, detector.getLanguageScope());
|
|
||||||
assertEquals(null, detector.getSettingEntries(null, null, null));
|
|
||||||
assertEquals(null, detector.getCustomParameter());
|
|
||||||
assertEquals(false, detector.isExecuted());
|
|
||||||
|
|
||||||
List<String> languages = new ArrayList<String>();
|
assertEquals(PROVIDER_ID, detector.getId());
|
||||||
languages.add(LANGUAGE_ID);
|
assertEquals(PROVIDER_NAME, detector.getName());
|
||||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
assertEquals(null, detector.getLanguageScope());
|
||||||
ICLanguageSettingEntry entry = new CMacroEntry("MACRO", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
assertEquals(null, detector.getSettingEntries(null, null, null));
|
||||||
entries.add(entry);
|
assertEquals(null, detector.getCustomParameter());
|
||||||
|
assertEquals(false, detector.isExecuted());
|
||||||
|
}
|
||||||
|
|
||||||
detector.configureProvider(PROVIDER_ID, PROVIDER_NAME, languages, entries, CUSTOM_PARAMETER);
|
{
|
||||||
assertEquals(PROVIDER_ID, detector.getId());
|
// provider configured with non-null parameters
|
||||||
assertEquals(PROVIDER_NAME, detector.getName());
|
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
||||||
assertEquals(languages, detector.getLanguageScope());
|
List<String> languages = new ArrayList<String>();
|
||||||
assertEquals(entries, detector.getSettingEntries(null, null, null));
|
languages.add(LANGUAGE_ID);
|
||||||
assertEquals(CUSTOM_PARAMETER, detector.getCustomParameter());
|
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
assertEquals(false, detector.isExecuted());
|
ICLanguageSettingEntry entry = new CMacroEntry("MACRO", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
||||||
|
entries.add(entry);
|
||||||
detector.execute();
|
|
||||||
assertEquals(true, detector.isExecuted());
|
detector.configureProvider(PROVIDER_ID, PROVIDER_NAME, languages, entries, CUSTOM_PARAMETER);
|
||||||
|
assertEquals(PROVIDER_ID, detector.getId());
|
||||||
|
assertEquals(PROVIDER_NAME, detector.getName());
|
||||||
|
assertEquals(languages, detector.getLanguageScope());
|
||||||
|
assertEquals(entries, detector.getSettingEntries(null, null, null));
|
||||||
|
assertEquals(CUSTOM_PARAMETER, detector.getCustomParameter());
|
||||||
|
assertEquals(false, detector.isExecuted());
|
||||||
|
|
||||||
|
detector.execute();
|
||||||
|
assertEquals(true, detector.isExecuted());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAbstractBuiltinSpecsDetector_CloneAndEquals() throws Exception {
|
public void testAbstractBuiltinSpecsDetector_CloneAndEquals() throws Exception {
|
||||||
// define mock detector
|
// define mock detector
|
||||||
class MockDetectorCloneable extends MockBuiltinSpecsDetectorExecutedFlag implements Cloneable {
|
class MockDetectorCloneable extends MockBuiltinSpecsDetectorExecutedFlag implements Cloneable {
|
||||||
|
@ -182,10 +188,10 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
return (MockDetectorCloneable) super.cloneShallow();
|
return (MockDetectorCloneable) super.cloneShallow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// create instance to compare to
|
// create instance to compare to
|
||||||
MockDetectorCloneable detector = new MockDetectorCloneable();
|
MockDetectorCloneable detector = new MockDetectorCloneable();
|
||||||
|
|
||||||
List<String> languages = new ArrayList<String>();
|
List<String> languages = new ArrayList<String>();
|
||||||
languages.add(LANGUAGE_ID);
|
languages.add(LANGUAGE_ID);
|
||||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
|
@ -195,7 +201,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
// check clone after initialization
|
// check clone after initialization
|
||||||
MockDetectorCloneable clone0 = detector.clone();
|
MockDetectorCloneable clone0 = detector.clone();
|
||||||
assertTrue(detector.equals(clone0));
|
assertTrue(detector.equals(clone0));
|
||||||
|
|
||||||
// configure provider
|
// configure provider
|
||||||
detector.configureProvider(PROVIDER_ID, PROVIDER_NAME, languages, entries, CUSTOM_PARAMETER);
|
detector.configureProvider(PROVIDER_ID, PROVIDER_NAME, languages, entries, CUSTOM_PARAMETER);
|
||||||
assertEquals(false, detector.isConsoleEnabled());
|
assertEquals(false, detector.isConsoleEnabled());
|
||||||
|
@ -209,21 +215,21 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
MockDetectorCloneable clone = detector.clone();
|
MockDetectorCloneable clone = detector.clone();
|
||||||
assertTrue(detector.equals(clone));
|
assertTrue(detector.equals(clone));
|
||||||
}
|
}
|
||||||
|
|
||||||
// check custom parameter
|
// check custom parameter
|
||||||
{
|
{
|
||||||
MockDetectorCloneable clone = detector.clone();
|
MockDetectorCloneable clone = detector.clone();
|
||||||
clone.setCustomParameter("changed");
|
clone.setCustomParameter("changed");
|
||||||
assertFalse(detector.equals(clone));
|
assertFalse(detector.equals(clone));
|
||||||
}
|
}
|
||||||
|
|
||||||
// check language scope
|
// check language scope
|
||||||
{
|
{
|
||||||
MockDetectorCloneable clone = detector.clone();
|
MockDetectorCloneable clone = detector.clone();
|
||||||
clone.setLanguageScope(null);
|
clone.setLanguageScope(null);
|
||||||
assertFalse(detector.equals(clone));
|
assertFalse(detector.equals(clone));
|
||||||
}
|
}
|
||||||
|
|
||||||
// check console flag
|
// check console flag
|
||||||
{
|
{
|
||||||
MockDetectorCloneable clone = detector.clone();
|
MockDetectorCloneable clone = detector.clone();
|
||||||
|
@ -231,7 +237,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
clone.setConsoleEnabled( ! isConsoleEnabled );
|
clone.setConsoleEnabled( ! isConsoleEnabled );
|
||||||
assertFalse(detector.equals(clone));
|
assertFalse(detector.equals(clone));
|
||||||
}
|
}
|
||||||
|
|
||||||
// check isExecuted flag
|
// check isExecuted flag
|
||||||
{
|
{
|
||||||
MockDetectorCloneable clone = detector.clone();
|
MockDetectorCloneable clone = detector.clone();
|
||||||
|
@ -240,14 +246,14 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
assertEquals(false, clone.isExecuted());
|
assertEquals(false, clone.isExecuted());
|
||||||
assertFalse(detector.equals(clone));
|
assertFalse(detector.equals(clone));
|
||||||
}
|
}
|
||||||
|
|
||||||
// check entries
|
// check entries
|
||||||
{
|
{
|
||||||
MockDetectorCloneable clone = detector.clone();
|
MockDetectorCloneable clone = detector.clone();
|
||||||
clone.setSettingEntries(null, null, null, null);
|
clone.setSettingEntries(null, null, null, null);
|
||||||
assertFalse(detector.equals(clone));
|
assertFalse(detector.equals(clone));
|
||||||
}
|
}
|
||||||
|
|
||||||
// check cloneShallow()
|
// check cloneShallow()
|
||||||
{
|
{
|
||||||
MockDetectorCloneable detector2 = detector.clone();
|
MockDetectorCloneable detector2 = detector.clone();
|
||||||
|
@ -257,12 +263,12 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
|
|
||||||
detector2.setSettingEntries(null, null, null, null);
|
detector2.setSettingEntries(null, null, null, null);
|
||||||
assertFalse(detector2.equals(clone));
|
assertFalse(detector2.equals(clone));
|
||||||
|
|
||||||
clone.execute();
|
clone.execute();
|
||||||
assertTrue(detector2.equals(clone));
|
assertTrue(detector2.equals(clone));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public void testAbstractBuiltinSpecsDetector_Serialize() throws Exception {
|
public void testAbstractBuiltinSpecsDetector_Serialize() throws Exception {
|
||||||
|
@ -270,36 +276,36 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
// create empty XML
|
// create empty XML
|
||||||
Document doc = XmlUtil.newDocument();
|
Document doc = XmlUtil.newDocument();
|
||||||
Element rootElement = XmlUtil.appendElement(doc, ELEM_TEST);
|
Element rootElement = XmlUtil.appendElement(doc, ELEM_TEST);
|
||||||
|
|
||||||
// load it to new provider
|
// load it to new provider
|
||||||
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
||||||
detector.load(rootElement);
|
detector.load(rootElement);
|
||||||
assertEquals(false, detector.isConsoleEnabled());
|
assertEquals(false, detector.isConsoleEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
Element elementProvider;
|
Element elementProvider;
|
||||||
{
|
{
|
||||||
// define mock detector
|
// define mock detector
|
||||||
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
||||||
assertEquals(false, detector.isConsoleEnabled());
|
assertEquals(false, detector.isConsoleEnabled());
|
||||||
|
|
||||||
// redefine the settings
|
// redefine the settings
|
||||||
detector.setConsoleEnabled(true);
|
detector.setConsoleEnabled(true);
|
||||||
assertEquals(true, detector.isConsoleEnabled());
|
assertEquals(true, detector.isConsoleEnabled());
|
||||||
|
|
||||||
// serialize in XML
|
// serialize in XML
|
||||||
Document doc = XmlUtil.newDocument();
|
Document doc = XmlUtil.newDocument();
|
||||||
Element rootElement = XmlUtil.appendElement(doc, ELEM_TEST);
|
Element rootElement = XmlUtil.appendElement(doc, ELEM_TEST);
|
||||||
elementProvider = detector.serialize(rootElement);
|
elementProvider = detector.serialize(rootElement);
|
||||||
String xmlString = XmlUtil.toString(doc);
|
String xmlString = XmlUtil.toString(doc);
|
||||||
|
|
||||||
assertTrue(xmlString.contains(ATTR_CONSOLE));
|
assertTrue(xmlString.contains(ATTR_CONSOLE));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// create another instance of the provider
|
// create another instance of the provider
|
||||||
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
MockBuiltinSpecsDetectorExecutedFlag detector = new MockBuiltinSpecsDetectorExecutedFlag();
|
||||||
assertEquals(false, detector.isConsoleEnabled());
|
assertEquals(false, detector.isConsoleEnabled());
|
||||||
|
|
||||||
// load element
|
// load element
|
||||||
detector.load(elementProvider);
|
detector.load(elementProvider);
|
||||||
assertEquals(true, detector.isConsoleEnabled());
|
assertEquals(true, detector.isConsoleEnabled());
|
||||||
|
@ -329,16 +335,16 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
||||||
ICConfigurationDescription[] cfgDescriptions = getConfigurationDescriptions(project);
|
ICConfigurationDescription[] cfgDescriptions = getConfigurationDescriptions(project);
|
||||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||||
|
|
||||||
MockConsoleBuiltinSpecsDetector detector = new MockConsoleBuiltinSpecsDetector();
|
MockConsoleBuiltinSpecsDetector detector = new MockConsoleBuiltinSpecsDetector();
|
||||||
detector.setLanguageScope(new ArrayList<String>() {{add(LANGUAGE_ID);}});
|
detector.setLanguageScope(new ArrayList<String>() {{add(LANGUAGE_ID);}});
|
||||||
|
|
||||||
detector.runForEachLanguage(cfgDescription, null, null, null);
|
detector.runForEachLanguage(cfgDescription, null, null, null);
|
||||||
assertFalse(detector.isEmpty());
|
assertFalse(detector.isEmpty());
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> noentries = detector.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> noentries = detector.getSettingEntries(null, null, null);
|
||||||
assertNull(noentries);
|
assertNull(noentries);
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> entries = detector.getSettingEntries(cfgDescription, null, LANGUAGE_ID);
|
List<ICLanguageSettingEntry> entries = detector.getSettingEntries(cfgDescription, null, LANGUAGE_ID);
|
||||||
ICLanguageSettingEntry expected = new CMacroEntry("MACRO", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
ICLanguageSettingEntry expected = new CMacroEntry("MACRO", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
||||||
assertEquals(expected, entries.get(0));
|
assertEquals(expected, entries.get(0));
|
||||||
|
@ -347,10 +353,10 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
public void testAbstractBuiltinSpecsDetector_RunGlobal() throws Exception {
|
public void testAbstractBuiltinSpecsDetector_RunGlobal() throws Exception {
|
||||||
MockConsoleBuiltinSpecsDetector detector = new MockConsoleBuiltinSpecsDetector();
|
MockConsoleBuiltinSpecsDetector detector = new MockConsoleBuiltinSpecsDetector();
|
||||||
detector.setLanguageScope(new ArrayList<String>() {{add(LANGUAGE_ID);}});
|
detector.setLanguageScope(new ArrayList<String>() {{add(LANGUAGE_ID);}});
|
||||||
|
|
||||||
detector.runForEachLanguage(null, null, null, null);
|
detector.runForEachLanguage(null, null, null, null);
|
||||||
assertFalse(detector.isEmpty());
|
assertFalse(detector.isEmpty());
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> entries = detector.getSettingEntries(null, null, LANGUAGE_ID);
|
List<ICLanguageSettingEntry> entries = detector.getSettingEntries(null, null, LANGUAGE_ID);
|
||||||
ICLanguageSettingEntry expected = new CMacroEntry("MACRO", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
ICLanguageSettingEntry expected = new CMacroEntry("MACRO", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
||||||
assertEquals(expected, entries.get(0));
|
assertEquals(expected, entries.get(0));
|
||||||
|
@ -370,7 +376,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
final CLibraryPathEntry libraryPath_2 = new CLibraryPathEntry(new Path("/lib/path_2"), ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
final CLibraryPathEntry libraryPath_2 = new CLibraryPathEntry(new Path("/lib/path_2"), ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
||||||
final CLibraryFileEntry libraryFile_1 = new CLibraryFileEntry("lib_1.a", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
final CLibraryFileEntry libraryFile_1 = new CLibraryFileEntry("lib_1.a", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
||||||
final CLibraryFileEntry libraryFile_2 = new CLibraryFileEntry("lib_2.a", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
final CLibraryFileEntry libraryFile_2 = new CLibraryFileEntry("lib_2.a", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY);
|
||||||
|
|
||||||
// Define mock detector adding unorganized entries
|
// Define mock detector adding unorganized entries
|
||||||
MockBuiltinSpecsDetector detector = new MockBuiltinSpecsDetector() {
|
MockBuiltinSpecsDetector detector = new MockBuiltinSpecsDetector() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -381,7 +387,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
detectedSettingEntries.add(macro_1);
|
detectedSettingEntries.add(macro_1);
|
||||||
detectedSettingEntries.add(includeFile_1);
|
detectedSettingEntries.add(includeFile_1);
|
||||||
detectedSettingEntries.add(includePath_1);
|
detectedSettingEntries.add(includePath_1);
|
||||||
|
|
||||||
detectedSettingEntries.add(includePath_2);
|
detectedSettingEntries.add(includePath_2);
|
||||||
detectedSettingEntries.add(includeFile_2);
|
detectedSettingEntries.add(includeFile_2);
|
||||||
detectedSettingEntries.add(macro_2);
|
detectedSettingEntries.add(macro_2);
|
||||||
|
@ -391,17 +397,17 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// run specs detector
|
// run specs detector
|
||||||
detector.startup(null);
|
detector.startup(null);
|
||||||
detector.startupForLanguage(null);
|
detector.startupForLanguage(null);
|
||||||
detector.processLine("", null);
|
detector.processLine("", null);
|
||||||
detector.shutdownForLanguage();
|
detector.shutdownForLanguage();
|
||||||
detector.shutdown();
|
detector.shutdown();
|
||||||
|
|
||||||
// compare benchmarks, expected well-sorted
|
// compare benchmarks, expected well-sorted
|
||||||
List<ICLanguageSettingEntry> entries = detector.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> entries = detector.getSettingEntries(null, null, null);
|
||||||
|
|
||||||
int i=0;
|
int i=0;
|
||||||
assertEquals(includePath_1, entries.get(i++));
|
assertEquals(includePath_1, entries.get(i++));
|
||||||
assertEquals(includePath_2, entries.get(i++));
|
assertEquals(includePath_2, entries.get(i++));
|
||||||
|
@ -415,7 +421,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
|
||||||
assertEquals(libraryPath_2, entries.get(i++));
|
assertEquals(libraryPath_2, entries.get(i++));
|
||||||
assertEquals(libraryFile_1, entries.get(i++));
|
assertEquals(libraryFile_1, entries.get(i++));
|
||||||
assertEquals(libraryFile_2, entries.get(i++));
|
assertEquals(libraryFile_2, entries.get(i++));
|
||||||
|
|
||||||
assertEquals(12, entries.size());
|
assertEquals(12, entries.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009, 2009 Andrew Gvozdev (Quoin Inc.) and others.
|
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Andrew Gvozdev (Quoin Inc.) - initial API and implementation
|
* Andrew Gvozdev - initial API and implementation
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.managedbuilder.internal.scannerconfig;
|
package org.eclipse.cdt.managedbuilder.internal.scannerconfig;
|
||||||
|
|
|
@ -111,7 +111,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
||||||
// get test plugin extension provider
|
// get test plugin extension provider
|
||||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_PROVIDER_ID);
|
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_PROVIDER_ID);
|
||||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||||
|
|
||||||
// get raw extension provider
|
// get raw extension provider
|
||||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
||||||
assertTrue(rawProvider instanceof LanguageSettingsBaseProvider);
|
assertTrue(rawProvider instanceof LanguageSettingsBaseProvider);
|
||||||
|
@ -225,7 +225,26 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
||||||
assertEquals(languages.size(), actualLanguageIds.size());
|
assertEquals(languages.size(), actualLanguageIds.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LanguageSettingsBaseProvider is not allowed to be configured twice.
|
||||||
|
*/
|
||||||
|
public void testBaseProviderCantReconfigure() throws Exception {
|
||||||
|
// create LanguageSettingsBaseProvider
|
||||||
|
LanguageSettingsBaseProvider provider = new LanguageSettingsBaseProvider();
|
||||||
|
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
|
entries.add(new CIncludePathEntry("/usr/include/", 0));
|
||||||
|
// configure it
|
||||||
|
provider.configureProvider("id", "name", null, entries, null);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// attempt to configure it twice should fail
|
||||||
|
provider.configureProvider("id", "name", null, entries, null);
|
||||||
|
fail("LanguageSettingsBaseProvider is not allowed to be configured twice");
|
||||||
|
} catch (UnsupportedOperationException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* TODO
|
||||||
*/
|
*/
|
||||||
|
@ -238,10 +257,10 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
||||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
||||||
assertTrue(rawProvider instanceof LanguageSettingsSerializableProvider);
|
assertTrue(rawProvider instanceof LanguageSettingsSerializableProvider);
|
||||||
LanguageSettingsSerializableProvider provider = (LanguageSettingsSerializableProvider) rawProvider;
|
LanguageSettingsSerializableProvider provider = (LanguageSettingsSerializableProvider) rawProvider;
|
||||||
|
|
||||||
assertEquals(null, provider.getLanguageScope());
|
assertEquals(null, provider.getLanguageScope());
|
||||||
assertEquals("", provider.getCustomParameter());
|
assertEquals("", provider.getCustomParameter());
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> expected = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> expected = new ArrayList<ICLanguageSettingEntry>();
|
||||||
expected.add(new CMacroEntry("MACRO", "value", 0));
|
expected.add(new CMacroEntry("MACRO", "value", 0));
|
||||||
assertEquals(expected, provider.getSettingEntries(null, null, null));
|
assertEquals(expected, provider.getSettingEntries(null, null, null));
|
||||||
|
@ -261,65 +280,45 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
||||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
||||||
assertTrue(rawProvider instanceof LanguageSettingsSerializableProvider);
|
assertTrue(rawProvider instanceof LanguageSettingsSerializableProvider);
|
||||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(rawProvider));
|
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(rawProvider));
|
||||||
|
|
||||||
// compare with workspace provider
|
// compare with workspace provider
|
||||||
ILanguageSettingsProvider providerWsp = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_SERIALIZABLE_PROVIDER_ID);
|
ILanguageSettingsProvider providerWsp = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_SERIALIZABLE_PROVIDER_ID);
|
||||||
ILanguageSettingsProvider providerWspRaw = LanguageSettingsManager.getRawProvider(providerWsp);
|
ILanguageSettingsProvider providerWspRaw = LanguageSettingsManager.getRawProvider(providerWsp);
|
||||||
assertSame(rawProvider, providerWspRaw);
|
assertSame(rawProvider, providerWspRaw);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Editable providers are retrieved by copy
|
// Editable providers are retrieved by copy
|
||||||
{
|
{
|
||||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||||
assertFalse(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
assertFalse(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||||
assertTrue(providerExt instanceof ILanguageSettingsEditableProvider);
|
assertTrue(providerExt instanceof ILanguageSettingsEditableProvider);
|
||||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(providerExt));
|
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(providerExt));
|
||||||
|
|
||||||
ILanguageSettingsProvider providerExt2 = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
ILanguageSettingsProvider providerExt2 = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||||
assertNotSame(providerExt, providerExt2);
|
assertNotSame(providerExt, providerExt2);
|
||||||
assertEquals(providerExt, providerExt2);
|
assertEquals(providerExt, providerExt2);
|
||||||
|
|
||||||
ILanguageSettingsProvider providerWsp = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_EDITABLE_PROVIDER_ID);
|
ILanguageSettingsProvider providerWsp = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||||
ILanguageSettingsProvider providerWspRaw = LanguageSettingsManager.getRawProvider(providerWsp);
|
ILanguageSettingsProvider providerWspRaw = LanguageSettingsManager.getRawProvider(providerWsp);
|
||||||
assertNotSame(providerExt, providerWspRaw);
|
assertNotSame(providerExt, providerWspRaw);
|
||||||
assertEquals(providerExt, providerWspRaw);
|
assertEquals(providerExt, providerWspRaw);
|
||||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(providerWspRaw));
|
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(providerWspRaw));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test shallow copy
|
// Test shallow copy
|
||||||
{
|
{
|
||||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||||
assertNotNull(provider);
|
assertNotNull(provider);
|
||||||
assertTrue(provider instanceof ILanguageSettingsEditableProvider);
|
assertTrue(provider instanceof ILanguageSettingsEditableProvider);
|
||||||
|
|
||||||
ILanguageSettingsProvider providerShallow = LanguageSettingsExtensionManager.getExtensionProviderShallow(EXTENSION_EDITABLE_PROVIDER_ID);
|
ILanguageSettingsProvider providerShallow = LanguageSettingsExtensionManager.getExtensionProviderShallow(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||||
assertNotNull(providerShallow);
|
assertNotNull(providerShallow);
|
||||||
assertTrue(providerShallow instanceof ILanguageSettingsEditableProvider);
|
assertTrue(providerShallow instanceof ILanguageSettingsEditableProvider);
|
||||||
assertFalse(provider.equals(providerShallow));
|
assertFalse(provider.equals(providerShallow));
|
||||||
|
|
||||||
assertFalse(LanguageSettingsExtensionManager.equalsExtensionProvider(providerShallow));
|
assertFalse(LanguageSettingsExtensionManager.equalsExtensionProvider(providerShallow));
|
||||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProviderShallow((ILanguageSettingsEditableProvider) providerShallow));
|
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProviderShallow((ILanguageSettingsEditableProvider) providerShallow));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
|
||||||
// * LanguageSettingsBaseProvider is not allowed to be configured twice.
|
|
||||||
// */
|
|
||||||
// public void testBaseProviderConfigure() throws Exception {
|
|
||||||
// // create LanguageSettingsBaseProvider
|
|
||||||
// LanguageSettingsBaseProvider provider = new LanguageSettingsBaseProvider();
|
|
||||||
// List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
|
||||||
// entries.add(new CIncludePathEntry("/usr/include/", 0));
|
|
||||||
// // configure it
|
|
||||||
// provider.configureProvider("id", "name", null, entries, null);
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// // attempt to configure it twice should fail
|
|
||||||
// provider.configureProvider("id", "name", null, entries, null);
|
|
||||||
// fail("LanguageSettingsBaseProvider is not allowed to be configured twice");
|
|
||||||
// } catch (UnsupportedOperationException e) {
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009, 2010 Andrew Gvozdev and others.
|
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -230,11 +230,11 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
assertNotNull(actual);
|
assertNotNull(actual);
|
||||||
assertEquals(0, actual.size());
|
assertEquals(0, actual.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
// use careless provider causing an exception
|
// use careless provider causing an exception
|
||||||
{
|
{
|
||||||
setExpectedNumberOfLoggedNonOKStatusObjects(1);
|
setExpectedNumberOfLoggedNonOKStatusObjects(1);
|
||||||
|
|
||||||
ILanguageSettingsProvider providerNPE = new MockProvider(PROVIDER_1, PROVIDER_NAME_1, null) {
|
ILanguageSettingsProvider providerNPE = new MockProvider(PROVIDER_1, PROVIDER_NAME_1, null) {
|
||||||
@Override
|
@Override
|
||||||
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
||||||
|
@ -419,7 +419,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
assertEquals(0, actual.size());
|
assertEquals(0, actual.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public void testProvider_DefaultEntries() throws Exception {
|
public void testProvider_DefaultEntries() throws Exception {
|
||||||
|
@ -428,15 +428,15 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
||||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project);
|
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||||
ICConfigurationDescription[] cfgDescriptions = prjDescription.getConfigurations();
|
ICConfigurationDescription[] cfgDescriptions = prjDescription.getConfigurations();
|
||||||
|
|
||||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||||
assertTrue(cfgDescription instanceof CConfigurationDescription);
|
assertTrue(cfgDescription instanceof CConfigurationDescription);
|
||||||
|
|
||||||
final IFolder parentFolder = ResourceHelper.createFolder(project, "/ParentFolder/");
|
final IFolder parentFolder = ResourceHelper.createFolder(project, "/ParentFolder/");
|
||||||
assertNotNull(parentFolder);
|
assertNotNull(parentFolder);
|
||||||
final IFile emptySettingsPath = ResourceHelper.createFile(project, "/ParentFolder/Subfolder/empty");
|
final IFile emptySettingsPath = ResourceHelper.createFile(project, "/ParentFolder/Subfolder/empty");
|
||||||
assertNotNull(emptySettingsPath);
|
assertNotNull(emptySettingsPath);
|
||||||
|
|
||||||
// store the entries as default entries
|
// store the entries as default entries
|
||||||
final List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
final List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
entries.add(new CIncludePathEntry("path0", 0));
|
entries.add(new CIncludePathEntry("path0", 0));
|
||||||
|
@ -449,11 +449,11 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
providers.add(provider);
|
providers.add(provider);
|
||||||
cfgDescription.setLanguageSettingProviders(providers);
|
cfgDescription.setLanguageSettingProviders(providers);
|
||||||
|
|
||||||
{
|
{
|
||||||
// retrieve entries for a resource
|
// retrieve entries for a resource
|
||||||
IFile derived = ResourceHelper.createFile(project, "/ParentFolder/Subfolder/resource");
|
IFile derived = ResourceHelper.createFile(project, "/ParentFolder/Subfolder/resource");
|
||||||
|
@ -691,7 +691,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_EDITABLE_PROVIDER_ID);
|
ILanguageSettingsProvider provider = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||||
assertEquals(EXTENSION_EDITABLE_PROVIDER_ID, provider.getId());
|
assertEquals(EXTENSION_EDITABLE_PROVIDER_ID, provider.getId());
|
||||||
assertEquals(EXTENSION_EDITABLE_PROVIDER_NAME, provider.getName());
|
assertEquals(EXTENSION_EDITABLE_PROVIDER_NAME, provider.getName());
|
||||||
|
|
||||||
// get raw provider
|
// get raw provider
|
||||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||||
assertEquals(EXTENSION_EDITABLE_PROVIDER_ID, rawProvider.getId());
|
assertEquals(EXTENSION_EDITABLE_PROVIDER_ID, rawProvider.getId());
|
||||||
|
@ -699,7 +699,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
assertTrue(rawProvider instanceof LanguageSettingsSerializableProvider);
|
assertTrue(rawProvider instanceof LanguageSettingsSerializableProvider);
|
||||||
// assert they are not the same object
|
// assert they are not the same object
|
||||||
assertNotSame(provider, rawProvider);
|
assertNotSame(provider, rawProvider);
|
||||||
|
|
||||||
{
|
{
|
||||||
// make sure entries are the same
|
// make sure entries are the same
|
||||||
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
||||||
|
@ -707,14 +707,14 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
List<ICLanguageSettingEntry> rawEntries = rawProvider.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> rawEntries = rawProvider.getSettingEntries(null, null, null);
|
||||||
assertEquals(entries, rawEntries);
|
assertEquals(entries, rawEntries);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
// set new entries to the raw provider
|
// set new entries to the raw provider
|
||||||
List<ICLanguageSettingEntry> newEntries = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> newEntries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
newEntries.add(new CIncludePathEntry("path0", 0));
|
newEntries.add(new CIncludePathEntry("path0", 0));
|
||||||
newEntries.add(new CIncludePathEntry("path1", 0));
|
newEntries.add(new CIncludePathEntry("path1", 0));
|
||||||
((LanguageSettingsSerializableProvider)rawProvider).setSettingEntries(null, null, null, newEntries);
|
((LanguageSettingsSerializableProvider)rawProvider).setSettingEntries(null, null, null, newEntries);
|
||||||
|
|
||||||
// check that the workspace provider gets them too
|
// check that the workspace provider gets them too
|
||||||
List<ICLanguageSettingEntry> newRawEntries = rawProvider.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> newRawEntries = rawProvider.getSettingEntries(null, null, null);
|
||||||
assertEquals(newEntries, newRawEntries);
|
assertEquals(newEntries, newRawEntries);
|
||||||
|
@ -742,13 +742,13 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
||||||
assertEquals(1, entries.size()); // defined in the extension
|
assertEquals(1, entries.size()); // defined in the extension
|
||||||
}
|
}
|
||||||
|
|
||||||
// define new entries for the raw provider
|
// define new entries for the raw provider
|
||||||
List<ICLanguageSettingEntry> newEntries = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> newEntries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
newEntries.add(new CIncludePathEntry("path0", 0));
|
newEntries.add(new CIncludePathEntry("path0", 0));
|
||||||
newEntries.add(new CIncludePathEntry("path1", 0));
|
newEntries.add(new CIncludePathEntry("path1", 0));
|
||||||
newEntries.add(new CIncludePathEntry("path2", 0));
|
newEntries.add(new CIncludePathEntry("path2", 0));
|
||||||
|
|
||||||
{
|
{
|
||||||
// replace raw provider
|
// replace raw provider
|
||||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||||
|
@ -757,7 +757,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
providers.add(newRawProvider);
|
providers.add(newRawProvider);
|
||||||
LanguageSettingsManager.setWorkspaceProviders(providers);
|
LanguageSettingsManager.setWorkspaceProviders(providers);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
// check that provider provides the new entries
|
// check that provider provides the new entries
|
||||||
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
List<ICLanguageSettingEntry> entries = provider.getSettingEntries(null, null, null);
|
||||||
|
@ -765,7 +765,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
assertEquals(newEntries, entries);
|
assertEquals(newEntries, entries);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test ability to be called with workspace provider as well (NOOP).
|
* Test ability to be called with workspace provider as well (NOOP).
|
||||||
*/
|
*/
|
||||||
|
@ -774,14 +774,14 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_EDITABLE_PROVIDER_ID);
|
ILanguageSettingsProvider provider = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||||
assertNotSame(provider, rawProvider);
|
assertNotSame(provider, rawProvider);
|
||||||
|
|
||||||
// attempt to "replace" with workspace provider (which is a wrapper around raw provider), should be NOOP
|
// attempt to "replace" with workspace provider (which is a wrapper around raw provider), should be NOOP
|
||||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||||
providers.add(provider);
|
providers.add(provider);
|
||||||
LanguageSettingsManager.setWorkspaceProviders(providers);
|
LanguageSettingsManager.setWorkspaceProviders(providers);
|
||||||
ILanguageSettingsProvider newRawProvider = LanguageSettingsManager.getRawProvider(provider);
|
ILanguageSettingsProvider newRawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||||
assertSame(rawProvider, newRawProvider);
|
assertSame(rawProvider, newRawProvider);
|
||||||
|
|
||||||
// check for no side effect
|
// check for no side effect
|
||||||
assertSame(provider, providers.get(0));
|
assertSame(provider, providers.get(0));
|
||||||
}
|
}
|
||||||
|
@ -793,23 +793,23 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
CMacroEntry entry = new CMacroEntry("MACRO", null, 0);
|
CMacroEntry entry = new CMacroEntry("MACRO", null, 0);
|
||||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
entries.add(entry);
|
entries.add(entry);
|
||||||
|
|
||||||
// create resources
|
// create resources
|
||||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||||
IFile file = ResourceHelper.createFile(project, "file.cpp");
|
IFile file = ResourceHelper.createFile(project, "file.cpp");
|
||||||
assertNotNull(file);
|
assertNotNull(file);
|
||||||
|
|
||||||
// create a provider and set the entries
|
// create a provider and set the entries
|
||||||
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider.setSettingEntries(null, file, null, entries);
|
provider.setSettingEntries(null, file, null, entries);
|
||||||
// build the hierarchy
|
// build the hierarchy
|
||||||
LanguageSettingsProvidersSerializer.buildResourceTree(provider, null, null, project);
|
LanguageSettingsProvidersSerializer.buildResourceTree(provider, null, null, project);
|
||||||
|
|
||||||
// check that entries go to highest possible level
|
// check that entries go to highest possible level
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file, null));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file, null));
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public void testBuildResourceTree_FileInSubFolder() throws Exception {
|
public void testBuildResourceTree_FileInSubFolder() throws Exception {
|
||||||
|
@ -817,24 +817,24 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
CMacroEntry entry = new CMacroEntry("MACRO", null, 0);
|
CMacroEntry entry = new CMacroEntry("MACRO", null, 0);
|
||||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
entries.add(entry);
|
entries.add(entry);
|
||||||
|
|
||||||
// create resources
|
// create resources
|
||||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||||
IFolder folder = ResourceHelper.createFolder(project, "Folder");
|
IFolder folder = ResourceHelper.createFolder(project, "Folder");
|
||||||
IFile file = ResourceHelper.createFile(project, "Folder/file.cpp");
|
IFile file = ResourceHelper.createFile(project, "Folder/file.cpp");
|
||||||
|
|
||||||
// create a provider and set the entries
|
// create a provider and set the entries
|
||||||
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider.setSettingEntries(null, file, null, entries);
|
provider.setSettingEntries(null, file, null, entries);
|
||||||
// build the hierarchy
|
// build the hierarchy
|
||||||
LanguageSettingsManager.buildResourceTree(provider, null, null, project);
|
LanguageSettingsManager.buildResourceTree(provider, null, null, project);
|
||||||
|
|
||||||
// check that entries go to highest possible level
|
// check that entries go to highest possible level
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file, null));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file, null));
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder, null));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder, null));
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public void testBuildResourceTree_TwoSubFolders() throws Exception {
|
public void testBuildResourceTree_TwoSubFolders() throws Exception {
|
||||||
|
@ -843,31 +843,31 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
entries1.add(new CMacroEntry("MACRO_1", null, 0));
|
entries1.add(new CMacroEntry("MACRO_1", null, 0));
|
||||||
List<ICLanguageSettingEntry> entries2 = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> entries2 = new ArrayList<ICLanguageSettingEntry>();
|
||||||
entries2.add(new CMacroEntry("MACRO_2", null, 0));
|
entries2.add(new CMacroEntry("MACRO_2", null, 0));
|
||||||
|
|
||||||
// create resources
|
// create resources
|
||||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||||
IFolder folder1 = ResourceHelper.createFolder(project, "Folder1");
|
IFolder folder1 = ResourceHelper.createFolder(project, "Folder1");
|
||||||
IFolder folder2 = ResourceHelper.createFolder(project, "Folder2");
|
IFolder folder2 = ResourceHelper.createFolder(project, "Folder2");
|
||||||
IFile file1 = ResourceHelper.createFile(project, "Folder1/file1.cpp");
|
IFile file1 = ResourceHelper.createFile(project, "Folder1/file1.cpp");
|
||||||
IFile file2 = ResourceHelper.createFile(project, "Folder2/file2.cpp");
|
IFile file2 = ResourceHelper.createFile(project, "Folder2/file2.cpp");
|
||||||
|
|
||||||
// create a provider and set the entries
|
// create a provider and set the entries
|
||||||
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider.setSettingEntries(null, file1, null, entries1);
|
provider.setSettingEntries(null, file1, null, entries1);
|
||||||
provider.setSettingEntries(null, file2, null, entries2);
|
provider.setSettingEntries(null, file2, null, entries2);
|
||||||
// build the hierarchy
|
// build the hierarchy
|
||||||
LanguageSettingsManager.buildResourceTree(provider, null, null, project);
|
LanguageSettingsManager.buildResourceTree(provider, null, null, project);
|
||||||
|
|
||||||
// check that entries go to highest possible level
|
// check that entries go to highest possible level
|
||||||
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file1, null));
|
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file1, null));
|
||||||
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder1, null));
|
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder1, null));
|
||||||
|
|
||||||
assertEquals(entries2, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file2, null));
|
assertEquals(entries2, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file2, null));
|
||||||
assertEquals(entries2, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder2, null));
|
assertEquals(entries2, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder2, null));
|
||||||
|
|
||||||
assertEquals(0, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null).size());
|
assertEquals(0, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null).size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public void testBuildResourceTree_FlippingSettings() throws Exception {
|
public void testBuildResourceTree_FlippingSettings() throws Exception {
|
||||||
|
@ -876,16 +876,16 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
entries1.add(new CMacroEntry("MACRO_1", null, 0));
|
entries1.add(new CMacroEntry("MACRO_1", null, 0));
|
||||||
List<ICLanguageSettingEntry> entries2 = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> entries2 = new ArrayList<ICLanguageSettingEntry>();
|
||||||
entries2.add(new CMacroEntry("MACRO_2", null, 0));
|
entries2.add(new CMacroEntry("MACRO_2", null, 0));
|
||||||
|
|
||||||
// create resources
|
// create resources
|
||||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||||
IFile file1 = ResourceHelper.createFile(project, "file1.cpp");
|
IFile file1 = ResourceHelper.createFile(project, "file1.cpp");
|
||||||
IFile file2 = ResourceHelper.createFile(project, "file2.cpp");
|
IFile file2 = ResourceHelper.createFile(project, "file2.cpp");
|
||||||
IFile file3 = ResourceHelper.createFile(project, "file3.cpp");
|
IFile file3 = ResourceHelper.createFile(project, "file3.cpp");
|
||||||
|
|
||||||
// create a provider
|
// create a provider
|
||||||
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
|
|
||||||
// set the entries for the first 2 files
|
// set the entries for the first 2 files
|
||||||
provider.setSettingEntries(null, file1, null, entries1);
|
provider.setSettingEntries(null, file1, null, entries1);
|
||||||
provider.setSettingEntries(null, file2, null, entries1);
|
provider.setSettingEntries(null, file2, null, entries1);
|
||||||
|
@ -895,7 +895,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file1, null));
|
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file1, null));
|
||||||
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file2, null));
|
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file2, null));
|
||||||
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null));
|
assertEquals(entries1, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, null));
|
||||||
|
|
||||||
// set the entries for the second+third files (second file flips the settings)
|
// set the entries for the second+third files (second file flips the settings)
|
||||||
provider.setSettingEntries(null, file2, null, entries2);
|
provider.setSettingEntries(null, file2, null, entries2);
|
||||||
provider.setSettingEntries(null, file3, null, entries2);
|
provider.setSettingEntries(null, file3, null, entries2);
|
||||||
|
@ -915,22 +915,22 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||||
CMacroEntry entry = new CMacroEntry("MACRO", null, 0);
|
CMacroEntry entry = new CMacroEntry("MACRO", null, 0);
|
||||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
entries.add(entry);
|
entries.add(entry);
|
||||||
|
|
||||||
// create resources
|
// create resources
|
||||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||||
IFolder folder = ResourceHelper.createFolder(project, "Folder");
|
IFolder folder = ResourceHelper.createFolder(project, "Folder");
|
||||||
IFile file = ResourceHelper.createFile(project, "Folder/file.cpp");
|
IFile file = ResourceHelper.createFile(project, "Folder/file.cpp");
|
||||||
|
|
||||||
// create a provider and set the entries
|
// create a provider and set the entries
|
||||||
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
LanguageSettingsSerializableProvider provider = new LanguageSettingsSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider.setSettingEntries(null, file, LANG_CPP, entries);
|
provider.setSettingEntries(null, file, LANG_CPP, entries);
|
||||||
// build the hierarchy
|
// build the hierarchy
|
||||||
LanguageSettingsManager.buildResourceTree(provider, null, LANG_CPP, project);
|
LanguageSettingsManager.buildResourceTree(provider, null, LANG_CPP, project);
|
||||||
|
|
||||||
// check that entries go to highest possible level
|
// check that entries go to highest possible level
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file, LANG_CPP));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, file, LANG_CPP));
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder, LANG_CPP));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, folder, LANG_CPP));
|
||||||
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, LANG_CPP));
|
assertEquals(entries, LanguageSettingsManager.getSettingEntriesUpResourceTree(provider, null, project, LANG_CPP));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009 Andrew Gvozdev and others.
|
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -1238,17 +1238,17 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
||||||
sampleLanguages.add(LANG_ID);
|
sampleLanguages.add(LANG_ID);
|
||||||
|
|
||||||
// create a model provider
|
// create a model provider
|
||||||
class LanguageSettingsSerializableMock extends LanguageSettingsSerializableProvider implements Cloneable {
|
class MockSerializableProvider extends LanguageSettingsSerializableProvider implements Cloneable {
|
||||||
public LanguageSettingsSerializableMock(String id, String name) {
|
public MockSerializableProvider(String id, String name) {
|
||||||
super(id, name);
|
super(id, name);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public LanguageSettingsSerializableMock clone() throws CloneNotSupportedException {
|
public MockSerializableProvider clone() throws CloneNotSupportedException {
|
||||||
return (LanguageSettingsSerializableMock) super.clone();
|
return (MockSerializableProvider) super.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
LanguageSettingsSerializableMock provider1 = new LanguageSettingsSerializableMock(PROVIDER_1, PROVIDER_NAME_1);
|
MockSerializableProvider provider1 = new MockSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider1.setLanguageScope(sampleLanguages);
|
provider1.setLanguageScope(sampleLanguages);
|
||||||
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
||||||
assertEquals(false, provider1.isStoringEntriesInProjectArea());
|
assertEquals(false, provider1.isStoringEntriesInProjectArea());
|
||||||
|
@ -1257,7 +1257,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
||||||
provider1.setSettingEntries(null, null, LANG_ID, sampleEntries_2);
|
provider1.setSettingEntries(null, null, LANG_ID, sampleEntries_2);
|
||||||
|
|
||||||
// clone provider
|
// clone provider
|
||||||
LanguageSettingsSerializableMock providerClone = provider1.clone();
|
MockSerializableProvider providerClone = provider1.clone();
|
||||||
assertNotSame(provider1, providerClone);
|
assertNotSame(provider1, providerClone);
|
||||||
assertTrue(provider1.equals(providerClone));
|
assertTrue(provider1.equals(providerClone));
|
||||||
assertTrue(provider1.getClass()==providerClone.getClass());
|
assertTrue(provider1.getClass()==providerClone.getClass());
|
||||||
|
@ -1286,17 +1286,17 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
||||||
sampleLanguages.add(LANG_ID);
|
sampleLanguages.add(LANG_ID);
|
||||||
|
|
||||||
// create a model provider
|
// create a model provider
|
||||||
class LanguageSettingsSerializableMock extends LanguageSettingsSerializableProvider implements Cloneable {
|
class MockSerializableProvider extends LanguageSettingsSerializableProvider implements Cloneable {
|
||||||
public LanguageSettingsSerializableMock(String id, String name) {
|
public MockSerializableProvider(String id, String name) {
|
||||||
super(id, name);
|
super(id, name);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public LanguageSettingsSerializableMock cloneShallow() throws CloneNotSupportedException {
|
public MockSerializableProvider cloneShallow() throws CloneNotSupportedException {
|
||||||
return (LanguageSettingsSerializableMock) super.cloneShallow();
|
return (MockSerializableProvider) super.cloneShallow();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
LanguageSettingsSerializableMock provider1 = new LanguageSettingsSerializableMock(PROVIDER_1, PROVIDER_NAME_1);
|
MockSerializableProvider provider1 = new MockSerializableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||||
provider1.setLanguageScope(sampleLanguages);
|
provider1.setLanguageScope(sampleLanguages);
|
||||||
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
provider1.setCustomParameter(CUSTOM_PARAMETER);
|
||||||
assertEquals(false, provider1.isStoringEntriesInProjectArea());
|
assertEquals(false, provider1.isStoringEntriesInProjectArea());
|
||||||
|
@ -1307,7 +1307,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
||||||
provider1.setSettingEntries(null, null, null, entries);
|
provider1.setSettingEntries(null, null, null, entries);
|
||||||
|
|
||||||
// clone provider
|
// clone provider
|
||||||
LanguageSettingsSerializableMock providerClone = provider1.cloneShallow();
|
MockSerializableProvider providerClone = provider1.cloneShallow();
|
||||||
assertNotSame(provider1, providerClone);
|
assertNotSame(provider1, providerClone);
|
||||||
assertFalse(provider1.equals(providerClone));
|
assertFalse(provider1.equals(providerClone));
|
||||||
assertTrue(provider1.getClass()==providerClone.getClass());
|
assertTrue(provider1.getClass()==providerClone.getClass());
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009, 2009 Andrew Gvozdev (Quoin Inc.) and others.
|
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Andrew Gvozdev (Quoin Inc.) - initial API and implementation
|
* Andrew Gvozdev - initial API and implementation
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.core.language.settings.providers;
|
package org.eclipse.cdt.core.language.settings.providers;
|
||||||
|
@ -14,7 +14,6 @@ package org.eclipse.cdt.core.language.settings.providers;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.AbstractExecutableExtensionBase;
|
import org.eclipse.cdt.core.AbstractExecutableExtensionBase;
|
||||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
|
|
||||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
|
@ -22,6 +21,7 @@ import org.eclipse.core.resources.IResource;
|
||||||
public class MockLanguageSettingsProvider extends AbstractExecutableExtensionBase
|
public class MockLanguageSettingsProvider extends AbstractExecutableExtensionBase
|
||||||
implements ILanguageSettingsProvider {
|
implements ILanguageSettingsProvider {
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009, 2009 Andrew Gvozdev (Quoin Inc.) and others.
|
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Andrew Gvozdev (Quoin Inc.) - initial API and implementation
|
* Andrew Gvozdev - initial API and implementation
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.core.language.settings.providers;
|
package org.eclipse.cdt.core.language.settings.providers;
|
||||||
|
@ -28,7 +28,7 @@ public interface ILanguageSettingsEditableProvider extends ILanguageSettingsProv
|
||||||
public void setSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId, List<ICLanguageSettingEntry> entries);
|
public void setSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId, List<ICLanguageSettingEntry> entries);
|
||||||
public boolean isEmpty();
|
public boolean isEmpty();
|
||||||
public void clear();
|
public void clear();
|
||||||
|
|
||||||
public ILanguageSettingsEditableProvider cloneShallow() throws CloneNotSupportedException;
|
public ILanguageSettingsEditableProvider cloneShallow() throws CloneNotSupportedException;
|
||||||
public ILanguageSettingsEditableProvider clone() throws CloneNotSupportedException;
|
public ILanguageSettingsEditableProvider clone() throws CloneNotSupportedException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ import org.eclipse.core.resources.IResource;
|
||||||
* This interface is used to deliver additions to compiler options such as
|
* This interface is used to deliver additions to compiler options such as
|
||||||
* include paths (-I) or preprocessor defines (-D) and others (see
|
* include paths (-I) or preprocessor defines (-D) and others (see
|
||||||
* {@link ICSettingEntry#INCLUDE_PATH} and other kinds).
|
* {@link ICSettingEntry#INCLUDE_PATH} and other kinds).
|
||||||
* <br>
|
* <br><br>
|
||||||
* To define a provider like that use extension point
|
* To define a provider like that use extension point
|
||||||
* {@code org.eclipse.cdt.core.LanguageSettingsProvider} and implement this
|
* {@code org.eclipse.cdt.core.LanguageSettingsProvider} and implement this
|
||||||
* interface. CDT provides a few general use implementations such as
|
* interface. CDT provides a few general use implementations such as
|
||||||
|
|
|
@ -18,15 +18,17 @@ import java.util.List;
|
||||||
import org.eclipse.cdt.core.AbstractExecutableExtensionBase;
|
import org.eclipse.cdt.core.AbstractExecutableExtensionBase;
|
||||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||||
|
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsStorage;
|
||||||
|
import org.eclipse.cdt.internal.core.settings.model.SettingsModelMessages;
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@code LanguageSettingsBaseProvider} is a basic implementation of {@link ILanguageSettingsProvider}
|
* {@code LanguageSettingsBaseProvider} is a basic implementation of {@link ILanguageSettingsProvider}
|
||||||
* defined in {@code org.eclipse.cdt.core.LanguageSettingsProvider} extension point.
|
* for the extensions defined by {@code org.eclipse.cdt.core.LanguageSettingsProvider} extension point.
|
||||||
*
|
*
|
||||||
* This implementation supports "static" list of entries for languages specified in
|
* This implementation supports "static" list of entries for languages specified in
|
||||||
* the extension point.
|
* the extension point.
|
||||||
*
|
*
|
||||||
* @since 6.0
|
* @since 6.0
|
||||||
*/
|
*/
|
||||||
public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBase implements ILanguageSettingsProvider {
|
public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBase implements ILanguageSettingsProvider {
|
||||||
|
@ -43,11 +45,12 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
|
||||||
* Default constructor.
|
* Default constructor.
|
||||||
*/
|
*/
|
||||||
public LanguageSettingsBaseProvider() {
|
public LanguageSettingsBaseProvider() {
|
||||||
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor. Creates an "empty" provider.
|
* Constructor. Creates an "empty" non-configured provider.
|
||||||
*
|
*
|
||||||
* @param id - id of the provider.
|
* @param id - id of the provider.
|
||||||
* @param name - name of the provider to be presented to a user.
|
* @param name - name of the provider to be presented to a user.
|
||||||
*/
|
*/
|
||||||
|
@ -57,7 +60,7 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
* @param id - id of the provider.
|
* @param id - id of the provider.
|
||||||
* @param name - name of the provider to be presented to a user.
|
* @param name - name of the provider to be presented to a user.
|
||||||
* @param languages - list of languages the {@code entries} provided for.
|
* @param languages - list of languages the {@code entries} provided for.
|
||||||
|
@ -66,15 +69,16 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
|
||||||
* @param entries - the list of language settings entries this provider provides.
|
* @param entries - the list of language settings entries this provider provides.
|
||||||
* If {@code null} is passed, the provider creates an empty list.
|
* If {@code null} is passed, the provider creates an empty list.
|
||||||
*/
|
*/
|
||||||
public LanguageSettingsBaseProvider(String id, String name, List<String> languages, List<ICLanguageSettingEntry> entries) {
|
public LanguageSettingsBaseProvider(String id, String name, List<String> languages,
|
||||||
|
List<ICLanguageSettingEntry> entries) {
|
||||||
super(id, name);
|
super(id, name);
|
||||||
this.languageScope = languages!=null ? new ArrayList<String>(languages) : null;
|
this.languageScope = languages!=null ? new ArrayList<String>(languages) : null;
|
||||||
this.entries = cloneList(entries);
|
this.entries = getPooledList(entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
* @param id - id of the provider.
|
* @param id - id of the provider.
|
||||||
* @param name - name of the provider to be presented to a user.
|
* @param name - name of the provider to be presented to a user.
|
||||||
* @param languages - list of languages the {@code entries} provided for.
|
* @param languages - list of languages the {@code entries} provided for.
|
||||||
|
@ -85,10 +89,11 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
|
||||||
* @param customParameter - a custom parameter as the means to customize
|
* @param customParameter - a custom parameter as the means to customize
|
||||||
* providers extending this class.
|
* providers extending this class.
|
||||||
*/
|
*/
|
||||||
public LanguageSettingsBaseProvider(String id, String name, List<String> languages, List<ICLanguageSettingEntry> entries, String customParameter) {
|
public LanguageSettingsBaseProvider(String id, String name, List<String> languages,
|
||||||
|
List<ICLanguageSettingEntry> entries, String customParameter) {
|
||||||
super(id, name);
|
super(id, name);
|
||||||
this.languageScope = languages!=null ? new ArrayList<String>(languages) : null;
|
this.languageScope = languages!=null ? new ArrayList<String>(languages) : null;
|
||||||
this.entries = cloneList(entries);
|
this.entries = getPooledList(entries);
|
||||||
this.customParameter = customParameter;
|
this.customParameter = customParameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,9 +102,9 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
|
||||||
* the extension point is done in 2 steps. First, the class is created as
|
* the extension point is done in 2 steps. First, the class is created as
|
||||||
* an executable extension using the default provider. Then this method is
|
* an executable extension using the default provider. Then this method is
|
||||||
* used to configure the provider.
|
* used to configure the provider.
|
||||||
*
|
*<br><br>
|
||||||
* FIXME It is not allowed to reconfigure the provider.
|
* It is not allowed to reconfigure the provider.
|
||||||
*
|
*
|
||||||
* @param id - id of the provider.
|
* @param id - id of the provider.
|
||||||
* @param name - name of the provider to be presented to a user.
|
* @param name - name of the provider to be presented to a user.
|
||||||
* @param languages - list of languages the {@code entries} provided for.
|
* @param languages - list of languages the {@code entries} provided for.
|
||||||
|
@ -109,46 +114,54 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
|
||||||
* If {@code null} is passed, the provider creates an empty list.
|
* If {@code null} is passed, the provider creates an empty list.
|
||||||
* @param customParameter - a custom parameter as the means to customize
|
* @param customParameter - a custom parameter as the means to customize
|
||||||
* providers extending this class from extension definition in {@code plugin.xml}.
|
* providers extending this class from extension definition in {@code plugin.xml}.
|
||||||
*
|
*
|
||||||
* FIXME @throws UnsupportedOperationException if an attempt to reconfigure provider is made.
|
* @throws UnsupportedOperationException if an attempt to reconfigure provider is made.
|
||||||
*/
|
*/
|
||||||
public void configureProvider(String id, String name, List<String> languages, List<ICLanguageSettingEntry> entries, String customParameter) {
|
public void configureProvider(String id, String name, List<String> languages,
|
||||||
// if (this.entries!=null)
|
List<ICLanguageSettingEntry> entries, String customParameter) {
|
||||||
// throw new UnsupportedOperationException(SettingsModelMessages.getString("LanguageSettingsBaseProvider.CanBeConfiguredOnlyOnce")); //$NON-NLS-1$
|
if (this.entries!=null)
|
||||||
|
throw new UnsupportedOperationException(SettingsModelMessages.getString("LanguageSettingsBaseProvider.CanBeConfiguredOnlyOnce")); //$NON-NLS-1$
|
||||||
|
|
||||||
setId(id);
|
setId(id);
|
||||||
setName(name);
|
setName(name);
|
||||||
this.languageScope = languages!=null ? new ArrayList<String>(languages) : null;
|
this.languageScope = languages!=null ? new ArrayList<String>(languages) : null;
|
||||||
this.entries = cloneList(entries);
|
this.entries = getPooledList(entries);
|
||||||
this.customParameter = customParameter;
|
this.customParameter = customParameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<ICLanguageSettingEntry> getPooledList(List<ICLanguageSettingEntry> entries) {
|
||||||
|
if (entries != null) {
|
||||||
|
return LanguageSettingsStorage.getPooledList(entries);
|
||||||
|
}
|
||||||
|
return LanguageSettingsStorage.getPooledEmptyList();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
* @param cfgDescription - configuration description.
|
*
|
||||||
* @param rc - resource such as file or folder.
|
|
||||||
* @param languageId - language id. If {@code null}, then entries defined for
|
* @param languageId - language id. If {@code null}, then entries defined for
|
||||||
* the language scope are returned. See {@link #getLanguageScope()}
|
* the language scope are returned. See {@link #getLanguageScope()}
|
||||||
|
*
|
||||||
|
* @return unmodifiable list of setting entries or {@code null} if no settings defined.
|
||||||
|
* the list is internally pooled and guaranteed to be the same object for equal
|
||||||
|
* lists.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription,
|
||||||
if (languageScope==null) {
|
IResource rc, String languageId) {
|
||||||
if (entries==null)
|
if (languageScope == null) {
|
||||||
return null;
|
return entries;
|
||||||
return Collections.unmodifiableList(entries);
|
|
||||||
}
|
}
|
||||||
for (String lang : languageScope) {
|
for (String lang : languageScope) {
|
||||||
if (lang.equals(languageId)) {
|
if (lang.equals(languageId)) {
|
||||||
if (entries==null)
|
return entries;
|
||||||
return null;
|
|
||||||
return Collections.unmodifiableList(entries);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the list of languages this provider provides for.
|
* @return the unmodifiable list of languages this provider provides for.
|
||||||
* If {@code null}, the provider provides for any language.
|
* If {@code null}, the provider provides for any language.
|
||||||
*/
|
*/
|
||||||
public List<String> getLanguageScope() {
|
public List<String> getLanguageScope() {
|
||||||
|
@ -163,13 +176,4 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
|
||||||
public String getCustomParameter() {
|
public String getCustomParameter() {
|
||||||
return customParameter;
|
return customParameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param entries
|
|
||||||
* @return copy of the list of the entries.
|
|
||||||
*/
|
|
||||||
private List<ICLanguageSettingEntry> cloneList(List<ICLanguageSettingEntry> entries) {
|
|
||||||
return entries!=null ? new ArrayList<ICLanguageSettingEntry>(entries) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ import org.osgi.service.prefs.Preferences;
|
||||||
/**
|
/**
|
||||||
* Collection of utilities for legacy support of older Scanner Discovery functionality.
|
* Collection of utilities for legacy support of older Scanner Discovery functionality.
|
||||||
* This class is temporary and not intended to be used by clients.
|
* This class is temporary and not intended to be used by clients.
|
||||||
*
|
*
|
||||||
* @noextend This class is not intended to be subclassed by clients.
|
* @noextend This class is not intended to be subclassed by clients.
|
||||||
* @noinstantiate This class is not intended to be instantiated by clients.
|
* @noinstantiate This class is not intended to be instantiated by clients.
|
||||||
*/
|
*/
|
||||||
|
@ -99,7 +99,7 @@ public class ScannerDiscoveryLegacySupport {
|
||||||
* Returns the values of scanner discovery profiles (scannerConfigDiscoveryProfileId) which were deprecated
|
* Returns the values of scanner discovery profiles (scannerConfigDiscoveryProfileId) which were deprecated
|
||||||
* and replaced with language settings providers in plugin.xml.
|
* and replaced with language settings providers in plugin.xml.
|
||||||
* This (temporary) function serves as fail-safe switch during the transition.
|
* This (temporary) function serves as fail-safe switch during the transition.
|
||||||
*
|
*
|
||||||
* @param id - can be id of either org.eclipse.cdt.managedbuilder.internal.core.InputType
|
* @param id - can be id of either org.eclipse.cdt.managedbuilder.internal.core.InputType
|
||||||
* or org.eclipse.cdt.managedbuilder.internal.core.ToolChain.
|
* or org.eclipse.cdt.managedbuilder.internal.core.ToolChain.
|
||||||
* @return legacy scannerConfigDiscoveryProfileId.
|
* @return legacy scannerConfigDiscoveryProfileId.
|
||||||
|
@ -108,8 +108,9 @@ public class ScannerDiscoveryLegacySupport {
|
||||||
public static String getDeprecatedLegacyProfiles(String id) {
|
public static String getDeprecatedLegacyProfiles(String id) {
|
||||||
if (legacyProfiles == null) {
|
if (legacyProfiles == null) {
|
||||||
legacyProfiles = new HashMap<String, String>();
|
legacyProfiles = new HashMap<String, String>();
|
||||||
|
|
||||||
// InputTypes
|
// InputTypes
|
||||||
|
// TODO -doublecheck
|
||||||
// legacyProfiles.put(inputTypeId, scannerConfigDiscoveryProfileId);
|
// legacyProfiles.put(inputTypeId, scannerConfigDiscoveryProfileId);
|
||||||
legacyProfiles.put("cdt.managedbuild.tool.gnu.c.compiler.input", "org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC|org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile");
|
legacyProfiles.put("cdt.managedbuild.tool.gnu.c.compiler.input", "org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC|org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile");
|
||||||
legacyProfiles.put("cdt.managedbuild.tool.gnu.cpp.compiler.input", "org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP|org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile");
|
legacyProfiles.put("cdt.managedbuild.tool.gnu.cpp.compiler.input", "org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP|org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile");
|
||||||
|
@ -118,11 +119,12 @@ public class ScannerDiscoveryLegacySupport {
|
||||||
legacyProfiles.put("cdt.managedbuild.tool.xlc.c.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile");
|
legacyProfiles.put("cdt.managedbuild.tool.xlc.c.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile");
|
||||||
legacyProfiles.put("cdt.managedbuild.tool.xlc.cpp.c.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile");
|
legacyProfiles.put("cdt.managedbuild.tool.xlc.cpp.c.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile");
|
||||||
legacyProfiles.put("cdt.managedbuild.tool.xlc.cpp.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfileCPP");
|
legacyProfiles.put("cdt.managedbuild.tool.xlc.cpp.compiler.input", "org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfileCPP");
|
||||||
|
|
||||||
// Toolchains
|
// Toolchains
|
||||||
|
// TODO -doublecheck
|
||||||
// legacyProfiles.put(toolchainId, scannerConfigDiscoveryProfileId);
|
// legacyProfiles.put(toolchainId, scannerConfigDiscoveryProfileId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return legacyProfiles.get(id);
|
return legacyProfiles.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,6 @@ public class LanguageSettingsExtensionManager {
|
||||||
loadProviderExtensions();
|
loadProviderExtensions();
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
CCorePlugin.log("Error loading language settings providers extensions", e); //$NON-NLS-1$
|
CCorePlugin.log("Error loading language settings providers extensions", e); //$NON-NLS-1$
|
||||||
} finally {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +78,7 @@ public class LanguageSettingsExtensionManager {
|
||||||
* Load language settings providers contributed via the extension point.
|
* Load language settings providers contributed via the extension point.
|
||||||
*/
|
*/
|
||||||
synchronized private static void loadProviderExtensions() {
|
synchronized private static void loadProviderExtensions() {
|
||||||
// sort by name - for the providers taken from platform extensions
|
// sort by name - the providers defined via extensions are kept in separate list sorted
|
||||||
Set<ILanguageSettingsProvider> sortedProviders = new TreeSet<ILanguageSettingsProvider>(
|
Set<ILanguageSettingsProvider> sortedProviders = new TreeSet<ILanguageSettingsProvider>(
|
||||||
new Comparator<ILanguageSettingsProvider>() {
|
new Comparator<ILanguageSettingsProvider>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -111,7 +110,7 @@ public class LanguageSettingsExtensionManager {
|
||||||
for (IExtension ext : extensions) {
|
for (IExtension ext : extensions) {
|
||||||
for (IConfigurationElement cfgEl : ext.getConfigurationElements()) {
|
for (IConfigurationElement cfgEl : ext.getConfigurationElements()) {
|
||||||
ILanguageSettingsProvider provider = null;
|
ILanguageSettingsProvider provider = null;
|
||||||
String id=null;
|
String id = null;
|
||||||
try {
|
try {
|
||||||
if (cfgEl.getName().equals(ELEM_PROVIDER)) {
|
if (cfgEl.getName().equals(ELEM_PROVIDER)) {
|
||||||
id = determineAttributeValue(cfgEl, ATTR_ID);
|
id = determineAttributeValue(cfgEl, ATTR_ID);
|
||||||
|
@ -169,8 +168,8 @@ public class LanguageSettingsExtensionManager {
|
||||||
|
|
||||||
for (IConfigurationElement ceLang : ce.getChildren(ELEM_LANGUAGE_SCOPE)) {
|
for (IConfigurationElement ceLang : ce.getChildren(ELEM_LANGUAGE_SCOPE)) {
|
||||||
String langId = determineAttributeValue(ceLang, ATTR_ID);
|
String langId = determineAttributeValue(ceLang, ATTR_ID);
|
||||||
if (langId.trim().length()>0) {
|
if (langId.length() > 0) {
|
||||||
if (languages==null) {
|
if (languages == null) {
|
||||||
languages = new ArrayList<String>();
|
languages = new ArrayList<String>();
|
||||||
}
|
}
|
||||||
languages.add(langId);
|
languages.add(langId);
|
||||||
|
@ -192,8 +191,9 @@ public class LanguageSettingsExtensionManager {
|
||||||
ICLanguageSettingEntry entry = (ICLanguageSettingEntry) CDataUtil.createEntry(
|
ICLanguageSettingEntry entry = (ICLanguageSettingEntry) CDataUtil.createEntry(
|
||||||
entryKind, entryName, entryValue, null, flags);
|
entryKind, entryName, entryValue, null, flags);
|
||||||
|
|
||||||
if (entries == null)
|
if (entries == null) {
|
||||||
entries = new ArrayList<ICLanguageSettingEntry>();
|
entries = new ArrayList<ICLanguageSettingEntry>();
|
||||||
|
}
|
||||||
entries.add(entry);
|
entries.add(entry);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -213,7 +213,7 @@ public class LanguageSettingsExtensionManager {
|
||||||
* Creates empty non-configured provider from extension point definition. The method will
|
* Creates empty non-configured provider from extension point definition. The method will
|
||||||
* inspect extension registry for extension point "org.eclipse.cdt.core.LanguageSettingsProvider"
|
* inspect extension registry for extension point "org.eclipse.cdt.core.LanguageSettingsProvider"
|
||||||
* to determine bundle and instantiate the class.
|
* to determine bundle and instantiate the class.
|
||||||
* ID and name of provider are assigned from first extension point encountered.
|
* ID and name of provider are assigned from the first encountered extension point specifying the class.
|
||||||
*
|
*
|
||||||
* @param className - full qualified class name of provider.
|
* @param className - full qualified class name of provider.
|
||||||
* @param registry - extension registry
|
* @param registry - extension registry
|
||||||
|
|
|
@ -65,7 +65,8 @@
|
||||||
<annotation>
|
<annotation>
|
||||||
<documentation>
|
<documentation>
|
||||||
A fully qualified name of the Java class that implements <samp>org.eclipse.cdt.core.settings.model.ILanguageSettingsProvider</samp> interface. If empty, <samp>org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider</samp> is used by default which provides basic functionality defined by this extension point.
|
A fully qualified name of the Java class that implements <samp>org.eclipse.cdt.core.settings.model.ILanguageSettingsProvider</samp> interface. If empty, <samp>org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider</samp> is used by default which provides basic functionality defined by this extension point.
|
||||||
If there is a need to configure a provider, attribute parameter could be used in a class extending <samp>LanguageSettingsBaseProvider</samp>.
|
If there is a need to configure a provider in more deliberate way, attribute <samp>parameter</samp> could be used in a class extending <samp>LanguageSettingsBaseProvider</samp>.
|
||||||
|
Default constructor (constructor without arguments) of this class must be public and the package be exported in order to be able to instantiate via extension point.
|
||||||
</documentation>
|
</documentation>
|
||||||
<appInfo>
|
<appInfo>
|
||||||
<meta.attribute kind="java" basedOn="org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider:org.eclipse.cdt.core.settings.model.ILanguageSettingsProvider"/>
|
<meta.attribute kind="java" basedOn="org.eclipse.cdt.core.language.settings.providers.LanguageSettingsBaseProvider:org.eclipse.cdt.core.settings.model.ILanguageSettingsProvider"/>
|
||||||
|
@ -89,7 +90,7 @@ If there is a need to configure a provider, attribute parameter could be used in
|
||||||
<attribute name="parameter" type="string">
|
<attribute name="parameter" type="string">
|
||||||
<annotation>
|
<annotation>
|
||||||
<documentation>
|
<documentation>
|
||||||
A custom parameter to initialize provider. Used to deliver command for GCCBuiltinSpecsDetector as an example.
|
A custom parameter to initialize provider. For example, used to deliver command for GCCBuiltinSpecsDetector.
|
||||||
</documentation>
|
</documentation>
|
||||||
</annotation>
|
</annotation>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
@ -256,7 +257,7 @@ For those cases where contributed settings entries (representing the compiler op
|
||||||
<meta.section type="copyright"/>
|
<meta.section type="copyright"/>
|
||||||
</appInfo>
|
</appInfo>
|
||||||
<documentation>
|
<documentation>
|
||||||
Copyright (c) 2009, 2010 Andrew Gvozdev (Quoin Inc.) and others.
|
Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are made available under the terms of the Eclipse Public License v1.0
|
are made available under the terms of the Eclipse Public License v1.0
|
||||||
which accompanies this distribution, and is available at
|
which accompanies this distribution, and is available at
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2009, 2010 Andrew Gvozdev (Quoin Inc.) and others.
|
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the Eclipse Public License v1.0
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.eclipse.org/legal/epl-v10.html
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* Andrew Gvozdev (Quoin Inc.) - initial API and implementation
|
* Andrew Gvozdev - initial API and implementation
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.core;
|
package org.eclipse.cdt.core;
|
||||||
|
@ -19,7 +19,7 @@ package org.eclipse.cdt.core;
|
||||||
public abstract class AbstractExecutableExtensionBase {
|
public abstract class AbstractExecutableExtensionBase {
|
||||||
private String fId;
|
private String fId;
|
||||||
private String fName;
|
private String fName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor will initialize with the name of the class
|
* Default constructor will initialize with the name of the class
|
||||||
* using reflection mechanism.
|
* using reflection mechanism.
|
||||||
|
|
Loading…
Add table
Reference in a new issue