lcsim/src/org/lcsim/job
diff -u -r1.16 -r1.17
--- JobControlManager.java 11 Mar 2009 19:05:04 -0000 1.16
+++ JobControlManager.java 12 Mar 2009 20:24:37 -0000 1.17
@@ -259,9 +259,13 @@
* @param propertyType The type of the parameter.
* @return The value of <code>value</code> as Class <code>propertyType</code>.
*/
- private Object convertParameter(String value, Class propertyType)
+ private Object convertParameter(Element parameterElement, Class propertyType)
{
+ // The Object that will be returned and passed to the Driver's setter.
Object o = null;
+
+ // The contents of the parameter's XML element.
+ String value = parameterElement.getText();
// Single int.
if (propertyType.equals(int.class))
@@ -368,21 +372,27 @@
o = ba;
}
// Single File type.
- else if (propertyType.getName().equals(File.class))
+ else if (propertyType.equals(File.class))
{
o = new File(value);
}
// Single URL type.
- else if (propertyType.getName().equals(URL.class))
+ else if (propertyType.equals(URL.class))
{
- try
+ try
{
o = new URL(value);
- } catch (Exception x)
+ }
+ catch (MalformedURLException x)
{
- throw new RuntimeException(x);
+ throw new RuntimeException("Bad URL " + value + " in XML job description.",x);
}
}
+ // Element to be processed by user's setter method.
+ else if (propertyType.equals(Element.class))
+ {
+ o = parameterElement;
+ }
return o;
}
@@ -892,15 +902,16 @@
}
// Create an Object for next Driver parameter using the conversion method.
- Object nextParameter = convertParameter(parameterElement.getText(), propertyType);
-
+ //System.out.println(parameterElement.getValue());
+ Object nextParameter = convertParameter(parameterElement, propertyType);
+
// Invoke the setter.
Object pargs[] = new Object[1];
pargs[0] = nextParameter;
try
{
if (printDriversDetailed)
- logStream.println(" " + pname + " = " + parameterElement.getText());
+ logStream.println(" " + pname + " = " + parameterElement.getText().trim());
setter.invoke(newDriver, pargs);
}
catch (Exception x)