do not save null in text and extra text

This commit is contained in:
Egor.Ushakov
2014-02-28 21:20:53 +04:00
parent 055191e0b5
commit e78e195e58
2 changed files with 26 additions and 0 deletions
@@ -32,6 +32,7 @@ public class TextBinding implements Binding {
@Override
public Object serialize(Object o, Object context, SerializationFilter filter) {
final Object v = myAccessor.read(o);
if (v == null) return context;
final Object node = myBinding.serialize(v, context, filter);
return new Text(((Content)node).getValue());
@@ -1029,6 +1029,31 @@ public class XmlSerializerTest extends TestCase {
}
}
public static class ConversionFromTextToAttributeBean {
@Property(surroundWithTag = false)
public ConditionBean myConditionBean = new ConditionBean();
}
@Tag("condition")
public static class ConditionBean {
@Attribute("expression")
public String myNewCondition;
@Text
public String myOldCondition;
}
public void testConversionFromTextToAttribute() {
ConversionFromTextToAttributeBean bean = new ConversionFromTextToAttributeBean();
bean.myConditionBean.myOldCondition = "2+2";
doSerializerTest("<ConversionFromTextToAttributeBean>\n" +
" <condition>2+2</condition>\n" +
"</ConversionFromTextToAttributeBean>", bean);
bean = new ConversionFromTextToAttributeBean();
bean.myConditionBean.myNewCondition = "2+2";
doSerializerTest("<ConversionFromTextToAttributeBean>\n" +
" <condition expression=\"2+2\" />\n" +
"</ConversionFromTextToAttributeBean>", bean);
}
public void testDeserializeInto() throws Exception {
BeanWithPublicFields bean = new BeanWithPublicFields();