View Javadoc

1   /*
2    * @(#)$Id: JdomTestSet.java 689 2009-07-22 00:10:27Z bsigner $
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.TestClass;
33  import org.ximtec.igesture.core.TestSet;
34  
35  
36  /**
37   * XML support for the TestSet class.
38   * 
39   * @version 1.0, Dec 2006
40   * @author Ueli Kurmann, igesture@uelikurmann.ch
41   * @author Beat Signer, signer@inf.ethz.ch
42   */
43  public class JdomTestSet extends Element {
44  
45     public static final String ROOT_TAG = "testSet";
46  
47     public static final String NAME_ATTRIBUTE = "name";
48  
49     public static final String UUID_ATTRIBUTE = "id";
50  
51     public static final String REFID_ATTRIBUTE = "idref";
52  
53  
54     public JdomTestSet(TestSet testSet) {
55        super(ROOT_TAG);
56        setAttribute(NAME_ATTRIBUTE, testSet.getName());
57        setAttribute(UUID_ATTRIBUTE, testSet.getId());
58  
59        for (TestClass testClass : testSet.getTestClasses()) {
60           addContent(new JdomTestClass(testClass));
61        }
62  
63     }
64  
65  
66     @SuppressWarnings("unchecked")
67     public static TestSet unmarshal(Element setElement) {
68        final String name = setElement.getAttributeValue(NAME_ATTRIBUTE);
69        final String uuid = setElement.getAttributeValue(UUID_ATTRIBUTE);
70        final TestSet testSet = new TestSet(name);
71        testSet.setId(uuid);
72  
73        for (final Element testClassElement : (List<Element>)setElement
74              .getChildren(JdomTestClass.ROOT_TAG)) {
75           testSet.addTestClass(JdomTestClass.unmarshal(testClassElement));
76        }
77        
78        // support legacy format
79        for (Element sampleElement : (List<Element>)setElement.getChildren(JdomGestureSample.ROOT_TAG)) {
80           testSet.add(JdomGestureSample.unmarshal(sampleElement));
81        }
82  
83        
84  
85        return testSet;
86     } // unmarshal
87  
88  }