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
|
@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)
|
||||||
|
|
|
@ -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,40 +339,47 @@ public class LanguageSettingsSerializable extends LanguageSettingsBaseProvider {
|
||||||
languageScope = null;
|
languageScope = null;
|
||||||
|
|
||||||
if (providerNode!=null) {
|
if (providerNode!=null) {
|
||||||
String providerId = XmlUtil.determineAttributeValue(providerNode, ATTR_ID);
|
loadAttributes(providerNode);
|
||||||
String providerName = XmlUtil.determineAttributeValue(providerNode, ATTR_NAME);
|
loadEntries(providerNode);
|
||||||
String providerParameter = XmlUtil.determineAttributeValue(providerNode, ATTR_PARAMETER);
|
}
|
||||||
String providerStoreEntries = XmlUtil.determineAttributeValue(providerNode, ATTR_STORE_ENTRIES);
|
}
|
||||||
|
|
||||||
this.setId(providerId);
|
public void loadAttributes(Element providerNode) {
|
||||||
this.setName(providerName);
|
String providerId = XmlUtil.determineAttributeValue(providerNode, ATTR_ID);
|
||||||
this.setCustomParameter(providerParameter);
|
String providerName = XmlUtil.determineAttributeValue(providerNode, ATTR_NAME);
|
||||||
this.setEntriesStorageWithProject(VALUE_PROJECT.equals(providerStoreEntries));
|
String providerParameter = XmlUtil.determineAttributeValue(providerNode, ATTR_PARAMETER);
|
||||||
|
String providerStoreEntries = XmlUtil.determineAttributeValue(providerNode, ATTR_STORE_ENTRIES);
|
||||||
|
|
||||||
List<ICLanguageSettingEntry> settings = new ArrayList<ICLanguageSettingEntry>();
|
this.setId(providerId);
|
||||||
NodeList nodes = providerNode.getChildNodes();
|
this.setName(providerName);
|
||||||
for (int i=0;i<nodes.getLength();i++) {
|
this.setCustomParameter(providerParameter);
|
||||||
Node elementNode = nodes.item(i);
|
this.setEntriesStorageWithProject(VALUE_PROJECT.equals(providerStoreEntries));
|
||||||
if(elementNode.getNodeType() != Node.ELEMENT_NODE)
|
}
|
||||||
continue;
|
|
||||||
|
|
||||||
if (ELEM_LANGUAGE_SCOPE.equals(elementNode.getNodeName())) {
|
public void loadEntries(Element providerNode) {
|
||||||
loadLanguageScopeElement(elementNode);
|
List<ICLanguageSettingEntry> settings = new ArrayList<ICLanguageSettingEntry>();
|
||||||
} else if (ELEM_LANGUAGE.equals(elementNode.getNodeName())) {
|
NodeList nodes = providerNode.getChildNodes();
|
||||||
loadLanguageElement(elementNode, null);
|
for (int i=0;i<nodes.getLength();i++) {
|
||||||
} else if (ELEM_RESOURCE.equals(elementNode.getNodeName())) {
|
Node elementNode = nodes.item(i);
|
||||||
loadResourceElement(elementNode, null, null);
|
if(elementNode.getNodeType() != Node.ELEMENT_NODE)
|
||||||
} else if (ELEM_ENTRY.equals(elementNode.getNodeName())) {
|
continue;
|
||||||
ICLanguageSettingEntry entry = loadSettingEntry(elementNode);
|
|
||||||
if (entry!=null) {
|
if (ELEM_LANGUAGE_SCOPE.equals(elementNode.getNodeName())) {
|
||||||
settings.add(entry);
|
loadLanguageScopeElement(elementNode);
|
||||||
}
|
} else if (ELEM_LANGUAGE.equals(elementNode.getNodeName())) {
|
||||||
|
loadLanguageElement(elementNode, null);
|
||||||
|
} else if (ELEM_RESOURCE.equals(elementNode.getNodeName())) {
|
||||||
|
loadResourceElement(elementNode, null, null);
|
||||||
|
} else if (ELEM_ENTRY.equals(elementNode.getNodeName())) {
|
||||||
|
ICLanguageSettingEntry entry = loadSettingEntry(elementNode);
|
||||||
|
if (entry!=null) {
|
||||||
|
settings.add(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// set settings
|
}
|
||||||
if (settings.size()>0) {
|
// set settings
|
||||||
setSettingEntriesInternal(null, null, settings);
|
if (settings.size()>0) {
|
||||||
}
|
setSettingEntriesInternal(null, null, settings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue