001
014
015 package com.liferay.portlet.exportimport.xstream;
016
017 import com.liferay.portal.kernel.bean.BeanPropertiesUtil;
018
019 import java.util.List;
020
021
024 public abstract class BaseXStreamConverter implements XStreamConverter {
025
026 @Override
027 public abstract boolean canConvert(Class<?> clazz);
028
029 @Override
030 public void marshal(
031 Object object, XStreamHierarchicalStreamWriter writer,
032 XStreamMarshallingContext xStreamMarshallingContext)
033 throws Exception {
034
035 for (String field : getFields()) {
036 writer.startNode(field);
037
038 Object value = BeanPropertiesUtil.getObject(object, field);
039
040 if (value != null) {
041 xStreamMarshallingContext.convertAnother(value);
042 }
043
044 writer.endNode();
045 }
046 }
047
048 @Override
049 public abstract Object unmarshal(
050 XStreamHierarchicalStreamReader xStreamHierarchicalStreamReader,
051 XStreamUnmarshallingContext xStreamUnmarshallingContext)
052 throws Exception;
053
054 protected abstract List<String> getFields();
055
056 }