1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

More detailed API to allow for separate persistence of attributes and

entries
This commit is contained in:
Andrew Gvozdev 2011-08-13 08:28:19 -04:00
parent da2ab70bac
commit 6088b4e980
2 changed files with 50 additions and 34 deletions

View file

@ -807,15 +807,15 @@ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSett
}
@Override
public Element serialize(Element parentElement) {
Element elementProvider = super.serialize(parentElement);
public Element serializeAttributes(Element parentElement) {
Element elementProvider = super.serializeAttributes(parentElement);
elementProvider.setAttribute(ATTR_EXPAND_RELATIVE_PATHS, Boolean.toString(isResolvingPaths));
return elementProvider;
}
@Override
public void load(Element providerNode) {
super.load(providerNode);
public void loadAttributes(Element providerNode) {
super.loadAttributes(providerNode);
String expandRelativePathsValue = XmlUtil.determineAttributeValue(providerNode, ATTR_EXPAND_RELATIVE_PATHS);
if (expandRelativePathsValue!=null)

View file

@ -235,6 +235,12 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
*/
// provider/configuration/language/resource/entry
public Element serialize(Element parentElement) {
Element elementProvider = serializeAttributes(parentElement);
serializeEntries(elementProvider);
return elementProvider;
}
public Element serializeAttributes(Element parentElement) {
Element elementProvider = XmlUtil.appendElement(parentElement, ELEM_PROVIDER, new String[] {
ATTR_ID, getId(),
ATTR_NAME, getName(),
@ -248,10 +254,13 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
XmlUtil.appendElement(elementProvider, ELEM_LANGUAGE_SCOPE, new String[] {ATTR_ID, langId});
}
}
return elementProvider;
}
public void serializeEntries(Element elementProvider) {
for (Entry<String, Map<String, List<ICLanguageSettingEntry>>> entryLang : fStorage.entrySet()) {
serializeLanguage(elementProvider, entryLang);
}
return elementProvider;
}
private void serializeLanguage(Element parentElement, Entry<String, Map<String, List<ICLanguageSettingEntry>>> entryLang) {
@ -330,6 +339,12 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
languageScope = null;
if (providerNode!=null) {
loadAttributes(providerNode);
loadEntries(providerNode);
}
}
public void loadAttributes(Element providerNode) {
String providerId = XmlUtil.determineAttributeValue(providerNode, ATTR_ID);
String providerName = XmlUtil.determineAttributeValue(providerNode, ATTR_NAME);
String providerParameter = XmlUtil.determineAttributeValue(providerNode, ATTR_PARAMETER);
@ -339,7 +354,9 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
this.setName(providerName);
this.setCustomParameter(providerParameter);
this.setEntriesStorageWithProject(VALUE_PROJECT.equals(providerStoreEntries));
}
public void loadEntries(Element providerNode) {
List<ICLanguageSettingEntry> settings = new ArrayList<ICLanguageSettingEntry>();
NodeList nodes = providerNode.getChildNodes();
for (int i=0;i<nodes.getLength();i++) {
@ -365,7 +382,6 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
setSettingEntriesInternal(null, null, settings);
}
}
}
private void loadLanguageScopeElement(Node parentNode) {
if (languageScope==null) {