mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-30 12:25:35 +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_ID = LanguageSettingsExtensionsTests.EXTENSION_BASE_PROVIDER_ID;
|
||||||
private static final String EXTENSION_BASE_PROVIDER_NAME = LanguageSettingsExtensionsTests.EXTENSION_BASE_PROVIDER_NAME;
|
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_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 ICLanguageSettingEntry EXTENSION_SERIALIZABLE_PROVIDER_ENTRY = LanguageSettingsExtensionsTests.EXTENSION_SERIALIZABLE_PROVIDER_ENTRY;
|
||||||
|
|
||||||
private static final String LANGUAGE_SETTINGS_PROJECT_XML = ".settings/language.settings.xml";
|
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 {
|
public void testProjectPersistence_TwoConfigurationsDOM() throws Exception {
|
||||||
|
|
|
@ -60,8 +60,8 @@ public class LanguageSettingsExtensionManager {
|
||||||
static final String ELEM_ENTRY_FLAG = "flag"; //$NON-NLS-1$
|
static final String ELEM_ENTRY_FLAG = "flag"; //$NON-NLS-1$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension providers loaded once. If the provider is editable (read cloneable)
|
* Extension providers loaded once and used for equality only.
|
||||||
* external callers get copy rather than real instance.
|
* Those who request extension provider will get copy rather than real instance.
|
||||||
*/
|
*/
|
||||||
private static final LinkedHashMap<String, ILanguageSettingsProvider> fExtensionProviders = new LinkedHashMap<String, ILanguageSettingsProvider>();
|
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.
|
* Load language settings providers contributed via the extension point.
|
||||||
*/
|
*/
|
||||||
synchronized private static void loadProviderExtensions() {
|
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>(
|
Set<ILanguageSettingsProvider> sortedProviders = new TreeSet<ILanguageSettingsProvider>(
|
||||||
new Comparator<ILanguageSettingsProvider>() {
|
new Comparator<ILanguageSettingsProvider>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -131,7 +131,7 @@ public class LanguageSettingsExtensionManager {
|
||||||
|
|
||||||
private static String determineAttributeValue(IConfigurationElement ce, String attr) {
|
private static String determineAttributeValue(IConfigurationElement ce, String attr) {
|
||||||
String value = ce.getAttribute(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.
|
* 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.
|
* @param className - class name to instantiate.
|
||||||
* @return new instance of language settings provider.
|
* @return new instance of language settings provider.
|
||||||
|
@ -263,15 +263,9 @@ public class LanguageSettingsExtensionManager {
|
||||||
if (className==null || className.equals(LanguageSettingsSerializableProvider.class.getName())) {
|
if (className==null || className.equals(LanguageSettingsSerializableProvider.class.getName())) {
|
||||||
return new LanguageSettingsSerializableProvider();
|
return new LanguageSettingsSerializableProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO unit test case for this
|
|
||||||
if (className.equals(LanguageSettingsGenericProvider.class.getName())) {
|
if (className.equals(LanguageSettingsGenericProvider.class.getName())) {
|
||||||
return new LanguageSettingsGenericProvider();
|
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.
|
// Create it as executable extension from the extension registry.
|
||||||
ILanguageSettingsProvider provider = loadProviderFromRegistry(ATTR_CLASS, className, Platform.getExtensionRegistry(), false);
|
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.
|
* 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() {
|
public static Set<String> getExtensionProviderIds() {
|
||||||
return fExtensionProviders.keySet();
|
return fExtensionProviders.keySet();
|
||||||
|
@ -320,7 +314,7 @@ public class LanguageSettingsExtensionManager {
|
||||||
* @param deep - {@code true} to request deep copy including copying settings entries
|
* @param deep - {@code true} to request deep copy including copying settings entries
|
||||||
* or {@code false} to return shallow copy with no 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) {
|
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
||||||
try {
|
try {
|
||||||
|
@ -362,6 +356,7 @@ public class LanguageSettingsExtensionManager {
|
||||||
* @param provider - the provider to test.
|
* @param provider - the provider to test.
|
||||||
* @param deep - {@code true} to check for deep equality testing also settings entries
|
* @param deep - {@code true} to check for deep equality testing also settings entries
|
||||||
* or {@code false} to test shallow copy with no 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.
|
* @return - {@code true} if the provider matches the extension or {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public static boolean isEqualsExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
public static boolean isEqualsExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue