diff options
author | cbateman | 2006-12-23 00:03:19 +0000 |
---|---|---|
committer | cbateman | 2006-12-23 00:03:19 +0000 |
commit | cf09b7cf568deeae35b59761aad6b1cafe964da5 (patch) | |
tree | 6b34e352a91ab99a2842baa64f9a2bb0d036e4f9 /jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org | |
parent | b9490688d125bdc4cc6c4014b32bdbda5ec39112 (diff) | |
download | webtools.jsf-cf09b7cf568deeae35b59761aad6b1cafe964da5.tar.gz webtools.jsf-cf09b7cf568deeae35b59761aad6b1cafe964da5.tar.xz webtools.jsf-cf09b7cf568deeae35b59761aad6b1cafe964da5.zip |
Fixed (hopefully) the problem of extension data getting removed on writes. I say hopefully because although it now passes my basic JUnit tests, there are many possible scenarios that are not yet tested thoroughly.
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/internal/translator/DynamicElementTranslator.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/internal/translator/DynamicElementTranslator.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/internal/translator/DynamicElementTranslator.java index 827b43764..82a92296d 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/internal/translator/DynamicElementTranslator.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org/eclipse/jst/jsf/facesconfig/internal/translator/DynamicElementTranslator.java @@ -37,8 +37,21 @@ class DynamicElementTranslator extends Translator implements IAnyTranslator return new Translator[] { - new Translator(TEXT_ATTRIBUTE_VALUE, facesConfigPackage.getDynamicElement_TextContent()), - new DynamicElementTranslator("*", facesConfigPackage.getDynamicElement_ChildNodes()) + new DynamicElementTranslator("*", facesConfigPackage.getDynamicElement_ChildNodes()), + new Translator(TEXT_ATTRIBUTE_VALUE, facesConfigPackage.getDynamicElement_TextContent()) + { + public Object getMOFValue(EObject object) + { + // TODO: this is a bit of a hack. The problem is + // that for some reason, if this translator returns + // null, then EMF2DOMAdapterImpl.updateDOMSubtree will + // remove the containing DynamicElement node completely. + // Returning an non-null empty value seems to work + // around this for now. + Object value = super.getMOFValue(object); + return value != null ? value : ""; + } + } }; } |