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
16
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 }
50
51
52 }