mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 06:05:24 +02:00
JavaDoc and one more unit test
This commit is contained in:
parent
8715c43cde
commit
9415c4d5b3
2 changed files with 67 additions and 13 deletions
|
@ -44,6 +44,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
private static final String EXTENSION_BASE_PROVIDER_ID = LanguageSettingsExtensionsTests.EXTENSION_BASE_PROVIDER_ID;
|
||||
private static final String EXTENSION_BASE_PROVIDER_NAME = LanguageSettingsExtensionsTests.EXTENSION_BASE_PROVIDER_NAME;
|
||||
private static final String EXTENSION_SERIALIZABLE_PROVIDER_ID = LanguageSettingsExtensionsTests.EXTENSION_SERIALIZABLE_PROVIDER_ID;
|
||||
private static final String EXTENSION_USER_PROVIDER_ID = LanguageSettingsExtensionsTests.EXTENSION_USER_PROVIDER_ID;
|
||||
private static final ICLanguageSettingEntry EXTENSION_SERIALIZABLE_PROVIDER_ENTRY = LanguageSettingsExtensionsTests.EXTENSION_SERIALIZABLE_PROVIDER_ENTRY;
|
||||
|
||||
private static final String LANGUAGE_SETTINGS_PROJECT_XML = ".settings/language.settings.xml";
|
||||
|
@ -530,6 +531,64 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public void testProjectPersistence_UserProviderDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
entries.add(new CIncludePathEntry("path0", 0));
|
||||
|
||||
{
|
||||
// create a provider
|
||||
MockProjectDescription mockPrjDescription = new MockProjectDescription(new MockConfigurationDescription(CFG_ID));
|
||||
ICConfigurationDescription[] cfgDescriptions = mockPrjDescription.getConfigurations();
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_USER_PROVIDER_ID, false);
|
||||
assertTrue(provider instanceof LanguageSettingsGenericProvider);
|
||||
LanguageSettingsGenericProvider serializableProvider = (LanguageSettingsGenericProvider) provider;
|
||||
serializableProvider.setSettingEntries(null, null, null, entries);
|
||||
LanguageSettingsManager.setStoringEntriesInProjectArea(serializableProvider, true);
|
||||
|
||||
ArrayList<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
providers.add(serializableProvider);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
|
||||
// prepare DOM storage
|
||||
Document doc = XmlUtil.newDocument();
|
||||
rootElement = XmlUtil.appendElement(doc, ELEM_TEST);
|
||||
// serialize language settings to the DOM
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsInternal(rootElement, null, mockPrjDescription);
|
||||
assertTrue(XmlUtil.toString(doc).contains(EXTENSION_USER_PROVIDER_ID));
|
||||
assertTrue(XmlUtil.toString(doc).contains(LanguageSettingsGenericProvider.class.getName()));
|
||||
}
|
||||
{
|
||||
// re-load and check language settings of the newly loaded provider
|
||||
MockProjectDescription mockPrjDescription = new MockProjectDescription(new MockConfigurationDescription(CFG_ID));
|
||||
LanguageSettingsProvidersSerializer.loadLanguageSettingsInternal(rootElement, null, mockPrjDescription);
|
||||
|
||||
ICConfigurationDescription[] cfgDescriptions = mockPrjDescription.getConfigurations();
|
||||
assertNotNull(cfgDescriptions);
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
assertNotNull(providers);
|
||||
assertEquals(1, providers.size());
|
||||
ILanguageSettingsProvider provider = providers.get(0);
|
||||
assertTrue(provider instanceof LanguageSettingsGenericProvider);
|
||||
|
||||
List<ICLanguageSettingEntry> actual = provider.getSettingEntries(null, null, null);
|
||||
assertEquals(entries.get(0), actual.get(0));
|
||||
assertEquals(entries.size(), actual.size());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public void testProjectPersistence_TwoConfigurationsDOM() throws Exception {
|
||||
|
|
|
@ -60,8 +60,8 @@ public class LanguageSettingsExtensionManager {
|
|||
static final String ELEM_ENTRY_FLAG = "flag"; //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* Extension providers loaded once. If the provider is editable (read cloneable)
|
||||
* external callers get copy rather than real instance.
|
||||
* Extension providers loaded once and used for equality only.
|
||||
* Those who request extension provider will get copy rather than real instance.
|
||||
*/
|
||||
private static final LinkedHashMap<String, ILanguageSettingsProvider> fExtensionProviders = new LinkedHashMap<String, ILanguageSettingsProvider>();
|
||||
|
||||
|
@ -80,7 +80,7 @@ public class LanguageSettingsExtensionManager {
|
|||
* Load language settings providers contributed via the extension point.
|
||||
*/
|
||||
synchronized private static void loadProviderExtensions() {
|
||||
// sort by name - the providers defined via extensions are kept in separate list sorted
|
||||
// sort by name - the providers defined via extensions are kept in separate list sorted by name
|
||||
Set<ILanguageSettingsProvider> sortedProviders = new TreeSet<ILanguageSettingsProvider>(
|
||||
new Comparator<ILanguageSettingsProvider>() {
|
||||
@Override
|
||||
|
@ -131,7 +131,7 @@ public class LanguageSettingsExtensionManager {
|
|||
|
||||
private static String determineAttributeValue(IConfigurationElement ce, String attr) {
|
||||
String value = ce.getAttribute(attr);
|
||||
return value!=null ? value : ""; //$NON-NLS-1$
|
||||
return value != null ? value : ""; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -254,7 +254,7 @@ public class LanguageSettingsExtensionManager {
|
|||
|
||||
/**
|
||||
* Create an instance of non-configured language settings provider of given class name.
|
||||
* The class should be known or registered with the extension point.
|
||||
* The class should be known to this method or registered with the extension point.
|
||||
*
|
||||
* @param className - class name to instantiate.
|
||||
* @return new instance of language settings provider.
|
||||
|
@ -263,15 +263,9 @@ public class LanguageSettingsExtensionManager {
|
|||
if (className==null || className.equals(LanguageSettingsSerializableProvider.class.getName())) {
|
||||
return new LanguageSettingsSerializableProvider();
|
||||
}
|
||||
|
||||
// TODO unit test case for this
|
||||
if (className.equals(LanguageSettingsGenericProvider.class.getName())) {
|
||||
return new LanguageSettingsGenericProvider();
|
||||
}
|
||||
// FIXME - older usage, will fade it out
|
||||
if (className.equals("org.eclipse.cdt.internal.ui.language.settings.providers.UserLanguageSettingsProvider")) {
|
||||
return new LanguageSettingsGenericProvider();
|
||||
}
|
||||
|
||||
// Create it as executable extension from the extension registry.
|
||||
ILanguageSettingsProvider provider = loadProviderFromRegistry(ATTR_CLASS, className, Platform.getExtensionRegistry(), false);
|
||||
|
@ -305,7 +299,7 @@ public class LanguageSettingsExtensionManager {
|
|||
|
||||
/**
|
||||
* Returns list of provider id-s contributed by all extensions.
|
||||
* @return list of provider id-s contributed by all extensions.
|
||||
* @return the provider id-s.
|
||||
*/
|
||||
public static Set<String> getExtensionProviderIds() {
|
||||
return fExtensionProviders.keySet();
|
||||
|
@ -320,7 +314,7 @@ public class LanguageSettingsExtensionManager {
|
|||
* @param deep - {@code true} to request deep copy including copying settings entries
|
||||
* or {@code false} to return shallow copy with no settings entries.
|
||||
*
|
||||
* @return a copy of the provider or null if copying is not possible.
|
||||
* @return a copy of the provider or {@code null} if copying is not possible.
|
||||
*/
|
||||
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
||||
try {
|
||||
|
@ -362,6 +356,7 @@ public class LanguageSettingsExtensionManager {
|
|||
* @param provider - the provider to test.
|
||||
* @param deep - {@code true} to check for deep equality testing also settings entries
|
||||
* or {@code false} to test shallow copy with no settings entries.
|
||||
* Shallow equality is applicable only for {@link ILanguageSettingsEditableProvider}.
|
||||
* @return - {@code true} if the provider matches the extension or {@code false} otherwise.
|
||||
*/
|
||||
public static boolean isEqualsExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
||||
|
|
Loading…
Add table
Reference in a new issue