1 package org.exoplatform.services.portal.skin.converter; 2 3 import java.util.* ; 4 import org.exoplatform.services.portal.skin.model.*; 5 6 import com.thoughtworks.xstream.converters.Converter; 7 import com.thoughtworks.xstream.converters.MarshallingContext; 8 import com.thoughtworks.xstream.converters.UnmarshallingContext; 9 import com.thoughtworks.xstream.io.HierarchicalStreamReader; 10 import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 11 12 15 public class DecoratorConverter implements Converter { 16 17 public boolean canConvert(Class type) { 18 return type.equals(Decorator.class) ; 19 } 20 21 public void marshal(Object source, HierarchicalStreamWriter w, MarshallingContext context) { 22 Decorator decorator = (Decorator) source ; 23 } 24 25 public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { 26 Decorator decorator = new Decorator() ; 27 while (reader.hasMoreChildren()) { 28 reader.moveDown(); 29 String nodeName = reader.getNodeName() ; 30 if("renderer-type".equals(nodeName)) { 31 decorator.setRendererType(reader.getValue()) ; 32 } else { 33 Object o = context.convertAnother(decorator, Style.class) ; 34 decorator.getStyles().add(o) ; 35 } 36 reader.moveUp(); 37 } 38 return decorator ; 39 } 40 } | Popular Tags |