View Javadoc

1   /*
2    * @(#)$Id: WorkspaceTool.java 456 2008-11-11 09:54:06Z D\signerb $
3    *
4    * Author       :   Ueli Kurmann, igesture@uelikurmann.ch
5    *
6    * Purpose      :   XML support for the TestSet class.
7    *
8    * -----------------------------------------------------------------------
9    *
10   * Revision Information:
11   *
12   * Date             Who         Reason
13   *
14   * Dec 26, 2006     ukurmann    Initial Release
15   * Mar 22, 2007     bsigner     Cleanup
16   *
17   * -----------------------------------------------------------------------
18   *
19   * Copyright 1999-2009 ETH Zurich. All Rights Reserved.
20   *
21   * This software is the proprietary information of ETH Zurich.
22   * Use is subject to license terms.
23   * 
24   */
25  
26  
27  package org.ximtec.igesture.core.jdom;
28  
29  import java.util.List;
30  
31  import org.jdom.Element;
32  import org.ximtec.igesture.core.Gesture;
33  import org.ximtec.igesture.core.GestureSample;
34  import org.ximtec.igesture.core.GestureSample3D;
35  import org.ximtec.igesture.core.TestClass;
36  
37  
38  /**
39   * XML support for the TestSet class.
40   * 
41   * @version 1.0, Dec 2006
42   * @author Ueli Kurmann, igesture@uelikurmann.ch
43   * @author Beat Signer, signer@inf.ethz.ch
44   */
45  public class JdomTestClass extends Element {
46  
47     public static final String ROOT_TAG = "testClass";
48  
49     public static final String NAME_ATTRIBUTE = "name";
50  
51     public static final String UUID_ATTRIBUTE = "id";
52  
53     public static final String REFID_ATTRIBUTE = "idref";
54  
55  
56     /**
57      * Creates a Test Class Jdom Element
58      * @param testClass a Test Class instance
59      */
60     public JdomTestClass(TestClass testClass) {
61        super(ROOT_TAG);
62        setAttribute(NAME_ATTRIBUTE, testClass.getName());
63        setAttribute(UUID_ATTRIBUTE, testClass.getId());
64  
65        for (final Gesture< ? > sample : testClass.getGestures()) {
66  
67           if (sample instanceof GestureSample) {
68              addContent(new JdomGestureSample((GestureSample)sample));
69           }else if(sample instanceof GestureSample3D){
70              // FIXME implement
71              //addContent(new JdomGestureSample3D((GestureSample3D)sample));
72           }
73        }
74     }
75  
76  
77     @SuppressWarnings("unchecked")
78     public static TestClass unmarshal(Element setElement) {
79        final String name = setElement.getAttributeValue(NAME_ATTRIBUTE);
80        final String uuid = setElement.getAttributeValue(UUID_ATTRIBUTE);
81        final TestClass testClass = new TestClass(name);
82        testClass.setId(uuid);
83  
84        for (Element sampleElement : (List<Element>)setElement
85              .getChildren(JdomGestureSample.ROOT_TAG)) {
86           testClass.add(JdomGestureSample.unmarshal(sampleElement));
87        }
88  
89        return testClass;
90     } // unmarshal
91  
92  }