01: package org.depunit;
02:
03: import org.w3c.dom.*;
04: import java.util.*;
05:
06: public class XMLDataDriver extends DataDriver {
07: private List<Map<String, String>> m_dataList;
08: private int m_listPos;
09:
10: public XMLDataDriver(Element driver) {
11: m_listPos = 0;
12: m_dataList = new ArrayList<Map<String, String>>();
13:
14: NodeList nl = driver.getElementsByTagName("data");
15: for (int I = 0; I < nl.getLength(); I++) {
16: Map<String, String> values = new HashMap<String, String>();
17: Element data = (Element) nl.item(I);
18: NodeList subnl = data.getElementsByTagName("value");
19: for (int J = 0; J < subnl.getLength(); J++) {
20: Element value = (Element) subnl.item(J);
21: values.put(value.getAttribute("name"), value
22: .getFirstChild().getNodeValue());
23: }
24:
25: m_dataList.add(values);
26: }
27: }
28:
29: public void reset() {
30: //System.out.println("RESET");
31: m_listPos = 0;
32: }
33:
34: public boolean hasNextDataSet() {
35: //System.out.println("POS: "+m_listPos+" SIZE: "+m_dataList.size());
36:
37: boolean ret = m_listPos < m_dataList.size();
38: //System.out.println("RET "+ret);
39:
40: return (ret);
41: }
42:
43: public Map<String, ? extends Object> getNextDataSet() {
44: //System.out.println("NEXT");
45:
46: Map<String, String> ret = m_dataList.get(m_listPos);
47: m_listPos++;
48:
49: return (ret);
50: }
51: }
|