1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.support.xml;
14
15 import org.apache.xmlbeans.XmlCursor;
16 import org.apache.xmlbeans.XmlObject;
17
18 /***
19 * Support class for reading XmlObject based configurations..
20 *
21 * @author Ole.Matzura
22 */
23
24 public class XmlObjectConfigurationReader
25 {
26 private final XmlObject config;
27
28 public XmlObjectConfigurationReader(XmlObject config)
29 {
30 this.config = config;
31 }
32
33 public int readInt(String name, int def )
34 {
35 if( config == null )
36 return def;
37
38 try
39 {
40 String str = readString( name, null);
41 return str == null ? def : Integer.parseInt(str);
42 }
43 catch (NumberFormatException e)
44 {
45 }
46
47 return def;
48 }
49
50 public long readLong(String name, int def )
51 {
52 if( config == null )
53 return def;
54
55 try
56 {
57 String str = readString( name, null);
58 return str == null ? def : Long.parseLong(str);
59 }
60 catch (NumberFormatException e)
61 {
62 }
63
64 return def;
65 }
66
67 public float readFloat(String name, float def )
68 {
69 if( config == null )
70 return def;
71
72 try
73 {
74 String str = readString( name, null );
75 return str == null ? def : Float.parseFloat(str);
76 }
77 catch (NumberFormatException e)
78 {
79 }
80
81 return def;
82 }
83
84 public String readString(String name, String def )
85 {
86 if( config == null )
87 return def;
88
89 XmlObject[] paths = config.selectPath("$this/" + name);
90 if (paths.length == 1)
91 {
92 XmlCursor cursor = paths[0].newCursor();
93 String textValue = cursor.getTextValue();
94 cursor.dispose();
95 return textValue;
96 }
97
98 return def;
99 }
100
101 public String [] readStrings(String name )
102 {
103 if( config == null )
104 return null;
105
106 XmlObject[] paths = config.selectPath("$this/" + name);
107 String [] result = new String[paths.length];
108
109 for( int c = 0; c < paths.length; c++ )
110 {
111 XmlCursor cursor = paths[c].newCursor();
112 result[c] = cursor.getTextValue();
113 cursor.dispose();
114 }
115
116 return result;
117 }
118
119 public boolean readBoolean(String name, boolean def)
120 {
121 try
122 {
123 return Boolean.valueOf(readString(name, String.valueOf(def)));
124 }
125 catch (Exception e)
126 {
127 return def;
128 }
129 }
130 }