* Parsing of the configuration from an XML file.
*/
public class ConfigurationParser {
-
- private static final String ELEM_URL = "url";
+
+ private static final String ELEM_URL = "url";
+
private static final String ELEM_TYPE = "type";
- private static final String ELEM_PATTERN = "pattern";
- private static final String ELEM_METHOD= "method";
- private static final String ELEM_XSLT = "xslt";
- private static final String ELEM_PARAM = "param";
+
+ private static final String ELEM_PATTERN = "pattern";
+
+ private static final String ELEM_METHOD = "method";
+
+ private static final String ELEM_XSLT = "xslt";
+
+ private static final String ELEM_PARAM = "param";
+
private static final String AT_NAME = "name";
+
private static final String AT_VALUE = "value";
-
+
private static final String METHOD_POST = "post";
+
private static final String METHOD_GET = "get";
-
- private static final int MAX_TRIES = 3;
+
+ private static final int MAX_TRIES = 3;
+
private static final int MAX_DELAY = 5000;
-
- private PrintStream _os;
-
+
+ private PrintStream _os;
+
public ConfigurationParser(PrintStream aOs) {
_os = aOs;
}
try {
SAXReader reader = new SAXReader();
Document document = reader.read(aStream);
-
- Element root = document.getRootElement();
+
+ Element root = document.getRootElement();
List<UrlConfig> urlConfigs = parseUrlConfigs(root);
- List<PageTypeConfig> pageTypeConfigs = parsePageTypeConfigs(root);
+ List<PageTypeConfig> pageTypeConfigs = parsePageTypeConfigs(root);
return new ConfigurationImpl(urlConfigs, pageTypeConfigs);
} catch (DocumentException e) {
throw new RuntimeException("Problem parsing config file", e);
}
/**
- * @param root
+ * @param aRoot
* @return
*/
- private List<UrlConfig> parseUrlConfigs(Element root) {
+ private List<UrlConfig> parseUrlConfigs(Element aRoot) {
List<UrlConfig> configs = new ArrayList<UrlConfig>();
- for (Iterator i = root.elementIterator(ELEM_URL); i.hasNext(); ) {
- Element url = (Element)i.next();
+ for (Iterator i = aRoot.elementIterator(ELEM_URL); i.hasNext();) {
+ Element url = (Element) i.next();
UrlConfig config = parseUrlConfig(url);
configs.add(config);
}
return configs;
}
-
- private List<PageTypeConfig> parsePageTypeConfigs(Element root) {
+
+ private List<PageTypeConfig> parsePageTypeConfigs(Element aRoot) {
List<PageTypeConfig> configs = new ArrayList<PageTypeConfig>();
- for (Iterator i = root.elementIterator(ELEM_TYPE); i.hasNext(); ) {
- Element url = (Element)i.next();
+ for (Iterator i = aRoot.elementIterator(ELEM_TYPE); i.hasNext();) {
+ Element url = (Element) i.next();
PageTypeConfig config = parsePageTypeConfig(url);
configs.add(config);
}
return configs;
}
-
- private UrlConfig parseUrlConfig(Element aUrlElem) {
+
+ private UrlConfig parseUrlConfig(Element aUrlElem) {
String pattern = aUrlElem.elementText(ELEM_PATTERN);
PageRequest request = parseRequestConfig(aUrlElem);
return new UrlConfig(pattern, request);
}
-
- private PageTypeConfig parsePageTypeConfig(Element aTypeElem) {
+
+ private PageTypeConfig parsePageTypeConfig(Element aTypeElem) {
String pattern = aTypeElem.elementText(ELEM_PATTERN);
PageRequest request = parseRequestConfig(aTypeElem);
return new PageTypeConfig(pattern, request);
* @return
*/
private PageRequest parseRequestConfig(Element aUrlElem) {
- String method = aUrlElem.elementText(ELEM_METHOD);
+ String method = aUrlElem.elementText(ELEM_METHOD);
String xslt = aUrlElem.elementText(ELEM_XSLT);
List<NameValuePair> params = new ArrayList<NameValuePair>();
- for (Iterator i = aUrlElem.elementIterator(ELEM_PARAM); i.hasNext(); ) {
- Element paramElem = (Element)i.next();
+ for (Iterator i = aUrlElem.elementIterator(ELEM_PARAM); i.hasNext();) {
+ Element paramElem = (Element) i.next();
NameValuePair param = parseParameter(paramElem);
params.add(param);
}
-
+
NameValuePair[] paramsArray = params.toArray(new NameValuePair[0]);
- PageRequest request;
- if ( METHOD_POST.equals(method)) {
- request = new PostPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, xslt, _os);
- }
- else if ( METHOD_GET.equals(method) || method == null ){
- request = new GetPageRequest(MAX_TRIES, MAX_DELAY, paramsArray, xslt, _os);
- } else {
- throw new RuntimeException("Unknown request method '" + method + "'. Only " +
- METHOD_GET + " and " + METHOD_POST + " are supported");
+ PageRequest request;
+ if (METHOD_POST.equals(method)) {
+ request = new PostPageRequest(MAX_TRIES, MAX_DELAY, paramsArray,
+ xslt, _os);
+ } else if (METHOD_GET.equals(method) || method == null) {
+ request = new GetPageRequest(MAX_TRIES, MAX_DELAY, paramsArray,
+ xslt, _os);
+ } else {
+ throw new RuntimeException("Unknown request method '" + method
+ + "'. Only " + METHOD_GET + " and " + METHOD_POST
+ + " are supported");
}
return request;
}
-
- private NameValuePair parseParameter(Element aParam) {
+
+ private NameValuePair parseParameter(Element aParam) {
String name = aParam.attributeValue(AT_NAME);
String value = aParam.attributeValue(AT_VALUE);
return new NameValuePair(name, value);