1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-26 18:35:32 +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 @Override
public Element serialize(Element parentElement) { public Element serializeAttributes(Element parentElement) {
Element elementProvider = super.serialize(parentElement); Element elementProvider = super.serializeAttributes(parentElement);
elementProvider.setAttribute(ATTR_EXPAND_RELATIVE_PATHS, Boolean.toString(isResolvingPaths)); elementProvider.setAttribute(ATTR_EXPAND_RELATIVE_PATHS, Boolean.toString(isResolvingPaths));
return elementProvider; return elementProvider;
} }
@Override @Override
public void load(Element providerNode) { public void loadAttributes(Element providerNode) {
super.load(providerNode); super.loadAttributes(providerNode);
String expandRelativePathsValue = XmlUtil.determineAttributeValue(providerNode, ATTR_EXPAND_RELATIVE_PATHS); String expandRelativePathsValue = XmlUtil.determineAttributeValue(providerNode, ATTR_EXPAND_RELATIVE_PATHS);
if (expandRelativePathsValue!=null) if (expandRelativePathsValue!=null)

View file

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