1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-27 19:05:38 +02:00

Some cleanup

This commit is contained in:
Andrew Gvozdev 2011-11-01 23:15:46 -04:00
parent 8d38ea9dbb
commit 4bd04cbdfc
8 changed files with 18 additions and 24 deletions

View file

@ -1041,7 +1041,5 @@ public class LanguageSettingsListenersTests extends TestCase {
assertEquals(cfgDescriptionId, event.getConfigurationDescriptionIds()[0]); assertEquals(cfgDescriptionId, event.getConfigurationDescriptionIds()[0]);
} }
} }
} }

View file

@ -41,7 +41,7 @@ import org.eclipse.core.runtime.Path;
* Test cases testing LanguageSettingsProvider functionality * Test cases testing LanguageSettingsProvider functionality
*/ */
public class LanguageSettingsManagerTests extends TestCase { public class LanguageSettingsManagerTests extends TestCase {
// Should match id of extension point defined in plugin.xml // Those should match ids of plugin extensions defined in plugin.xml
private static final String EXTENSION_BASE_PROVIDER_ID = "org.eclipse.cdt.core.tests.language.settings.base.provider"; private static final String EXTENSION_BASE_PROVIDER_ID = "org.eclipse.cdt.core.tests.language.settings.base.provider";
private static final String EXTENSION_EDITABLE_PROVIDER_ID = "org.eclipse.cdt.core.tests.custom.editable.language.settings.provider"; private static final String EXTENSION_EDITABLE_PROVIDER_ID = "org.eclipse.cdt.core.tests.custom.editable.language.settings.provider";
private static final String EXTENSION_EDITABLE_PROVIDER_NAME = "Test Plugin Mock Editable Language Settings Provider"; private static final String EXTENSION_EDITABLE_PROVIDER_NAME = "Test Plugin Mock Editable Language Settings Provider";

View file

@ -13,14 +13,9 @@ package org.eclipse.cdt.core.language.settings.providers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
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.core.settings.model.ICSettingEntry;
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
import org.eclipse.cdt.core.settings.model.util.LanguageSettingEntriesSerializer;
import org.eclipse.cdt.internal.core.XmlUtil; import org.eclipse.cdt.internal.core.XmlUtil;
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsStorage; import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsStorage;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
@ -166,19 +161,15 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
public void setSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId, List<ICLanguageSettingEntry> entries) { public void setSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId, List<ICLanguageSettingEntry> entries) {
String rcProjectPath = rc!=null ? rc.getProjectRelativePath().toString() : null; String rcProjectPath = rc!=null ? rc.getProjectRelativePath().toString() : null;
fStorage.setSettingEntries(rcProjectPath, languageId, entries); fStorage.setSettingEntries(rcProjectPath, languageId, entries);
// // TODO - not sure what is more efficient, to do that or not to do that?
// if (fStorage.equals(lastPersistedState)) {
// lastPersistedState = null;
// }
} }
/** /**
* {@inheritDoc} * {@inheritDoc}
* <br> Note that this list is <b>unmodifiable</b>. To modify the list copy it, change and use * <br>
* Note that this list is <b>unmodifiable</b>. To modify the list copy it, change and use
* {@link #setSettingEntries(ICConfigurationDescription, IResource, String, List)}. * {@link #setSettingEntries(ICConfigurationDescription, IResource, String, List)}.
* * <br>
* <br/> Note also that <b>you can compare these lists with simple equality operator ==</b>, * Note also that <b>you can compare these lists with simple equality operator ==</b>,
* as lists themselves are backed by WeakHashSet<List<ICLanguageSettingEntry>> where * as lists themselves are backed by WeakHashSet<List<ICLanguageSettingEntry>> where
* identical copies (deep comparison is used) are replaced with the same one instance. * identical copies (deep comparison is used) are replaced with the same one instance.
*/ */

View file

@ -11,12 +11,16 @@
package org.eclipse.cdt.internal.core.language.settings.providers; package org.eclipse.cdt.internal.core.language.settings.providers;
/** /**
* Listens to changes in language settings. * An interface for listeners to changes in language settings.
*
* @see LanguageSettingsProvidersSerializer#registerLanguageSettingsChangeListener(ILanguageSettingsChangeListener)
* @see LanguageSettingsProvidersSerializer#unregisterLanguageSettingsChangeListener(ILanguageSettingsChangeListener)
*/ */
public interface ILanguageSettingsChangeListener { public interface ILanguageSettingsChangeListener {
/** /**
* Indicates that language settings have been changed. * Indicates that language settings have been changed.
* @param event *
* @param event - details of the event.
*/ */
public void handleEvent(ILanguageSettingsChangeEvent event); public void handleEvent(ILanguageSettingsChangeEvent event);
} }

View file

@ -174,6 +174,10 @@ public class LanguageSettingsProvidersSerializer {
} }
} }
/**
* Language Settings Change Event implementation.
*
*/
private static class LanguageSettingsChangeEvent implements ILanguageSettingsChangeEvent { private static class LanguageSettingsChangeEvent implements ILanguageSettingsChangeEvent {
private String projectName = null; private String projectName = null;
private Map<String /*cfg*/, LanguageSettingsDelta> deltaMap = new HashMap<String, LanguageSettingsDelta>(); private Map<String /*cfg*/, LanguageSettingsDelta> deltaMap = new HashMap<String, LanguageSettingsDelta>();

View file

@ -1023,7 +1023,7 @@ public class CConfigurationSpecSettings implements ICSettingsStorage{
} }
/** /**
* Returns delta and atomically updates last persisted state to the new state. * Returns delta and updates last persisted state to the new state.
* That implies that the delta needs to be used to fire an event of it will * That implies that the delta needs to be used to fire an event of it will
* be lost. * be lost.
*/ */

View file

@ -20,10 +20,9 @@ import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.ResourcesPlugin;
/** /**
* This class handles changes in language settings for the PDOM by reindexing the appropriate resources. * This class handles changes in language settings for the PDOM.
*/ */
public class LanguageSettingsChangeListener implements ILanguageSettingsChangeListener { public class LanguageSettingsChangeListener implements ILanguageSettingsChangeListener {
private PDOMManager fManager; private PDOMManager fManager;
public LanguageSettingsChangeListener(PDOMManager manager) { public LanguageSettingsChangeListener(PDOMManager manager) {
@ -31,9 +30,8 @@ public class LanguageSettingsChangeListener implements ILanguageSettingsChangeLi
} }
public void handleEvent(ILanguageSettingsChangeEvent event) { public void handleEvent(ILanguageSettingsChangeEvent event) {
String projectName = event.getProjectName();
IWorkspaceRoot wspRoot = ResourcesPlugin.getWorkspace().getRoot(); IWorkspaceRoot wspRoot = ResourcesPlugin.getWorkspace().getRoot();
IProject project = wspRoot.getProject(projectName); IProject project = wspRoot.getProject(event.getProjectName());
if (project != null) { if (project != null) {
ICProjectDescription prjDescription = CCorePlugin.getDefault().getProjectDescription(project); ICProjectDescription prjDescription = CCorePlugin.getDefault().getProjectDescription(project);

View file

@ -60,7 +60,6 @@ import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.core.model.LanguageManager; import org.eclipse.cdt.core.model.LanguageManager;
import org.eclipse.cdt.core.settings.model.CProjectDescriptionEvent; import org.eclipse.cdt.core.settings.model.CProjectDescriptionEvent;
import org.eclipse.cdt.core.settings.model.ICProjectDescriptionListener; import org.eclipse.cdt.core.settings.model.ICProjectDescriptionListener;
import org.eclipse.cdt.core.settings.model.util.LanguageSettingEntriesSerializer;
import org.eclipse.cdt.internal.core.CCoreInternals; import org.eclipse.cdt.internal.core.CCoreInternals;
import org.eclipse.cdt.internal.core.index.IIndexFragment; import org.eclipse.cdt.internal.core.index.IIndexFragment;
import org.eclipse.cdt.internal.core.index.IWritableIndex; import org.eclipse.cdt.internal.core.index.IWritableIndex;