KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > services > portal > skin > converter > DecoratorConverter


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 /**
13  * @author Tuan Nguyen
14  */

15 public class DecoratorConverter implements Converter {
16
17     public boolean canConvert(Class JavaDoc type) {
18         return type.equals(Decorator.class) ;
19     }
20
21     public void marshal(Object JavaDoc source, HierarchicalStreamWriter w, MarshallingContext context) {
22         Decorator decorator = (Decorator) source ;
23     }
24
25     public Object JavaDoc unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
26       Decorator decorator = new Decorator() ;
27       while (reader.hasMoreChildren()) {
28             reader.moveDown();
29             String JavaDoc nodeName = reader.getNodeName() ;
30             if("renderer-type".equals(nodeName)) {
31                 decorator.setRendererType(reader.getValue()) ;
32             } else {
33                 Object JavaDoc o = context.convertAnother(decorator, Style.class) ;
34                 decorator.getStyles().add(o) ;
35             }
36             reader.moveUp();
37         }
38         return decorator ;
39     }
40 }
Popular Tags