Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbateman2006-12-23 00:03:19 +0000
committercbateman2006-12-23 00:03:19 +0000
commitcf09b7cf568deeae35b59761aad6b1cafe964da5 (patch)
tree6b34e352a91ab99a2842baa64f9a2bb0d036e4f9 /jsf/plugins/org.eclipse.jst.jsf.facesconfig/facesconfig/org
parentb9490688d125bdc4cc6c4014b32bdbda5ec39112 (diff)
downloadwebtools.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.java17
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 : "";
+ }
+ }
};
}

Back to the top