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:
parent
da2ab70bac
commit
6088b4e980
2 changed files with 50 additions and 34 deletions
|
@ -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)
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue