View Javadoc

1   /**
2    * 
3    */
4   package org.ximtec.igesture.core.jdom;
5   
6   import java.util.List;
7   
8   import org.jdom.Element;
9   import org.ximtec.igesture.core.Gesture;
10  import org.ximtec.igesture.core.SampleDescriptor;
11  import org.ximtec.igesture.core.SampleDescriptor3D;
12  import org.ximtec.igesture.util.additions3d.RecordedGesture3D;
13  
14  /**
15   * XML support for the SampleDescriptor3D class.
16   * @author Bjorn Puype, bpuype@gmail.com
17   *
18   */
19  public class JdomSampleDescriptor3D extends Element {
20  
21  	public static final String ROOT_TAG = "descriptor3D";
22  
23  	public static final String TYPE_ATTRIBUTE = "type";
24  
25  	public static final String UUID_ATTRIBUTE = "id";
26  	
27  	public JdomSampleDescriptor3D(SampleDescriptor3D descriptor)
28  	{
29  		super(ROOT_TAG);
30  		setAttribute(TYPE_ATTRIBUTE, descriptor.getType().getName());
31  	    setAttribute(UUID_ATTRIBUTE, descriptor.getId());
32  	    
33  	    for (final Gesture<RecordedGesture3D> sample : descriptor.getSamples()) {
34  	         addContent(new JdomGestureSample3D(sample));
35  	    }
36  	}
37  	
38  	@SuppressWarnings("unchecked")
39  	   public static Object unmarshal(Element descriptor) {
40  	      String uuid = descriptor.getAttributeValue(UUID_ATTRIBUTE);
41  	      SampleDescriptor3D gestureDescriptor = new SampleDescriptor3D();
42  	      gestureDescriptor.setId(uuid);
43  
44  	      for (Element sample : (List<Element>)descriptor.getChildren(JdomGestureSample3D.ROOT_TAG)) {
45  	         gestureDescriptor.addSample(JdomGestureSample3D.unmarshal(sample));
46  	      }
47  
48  	      return gestureDescriptor;
49  	   } // unmarshal
50  	
51  	
52  }