Print

Print


Commit in lcsim/src/org/lcsim/job on MAIN
JobControlManager.java+163-1631.17 -> 1.18
rearrange some methods

lcsim/src/org/lcsim/job
JobControlManager.java 1.17 -> 1.18
diff -u -r1.17 -r1.18
--- JobControlManager.java	12 Mar 2009 20:24:37 -0000	1.17
+++ JobControlManager.java	12 Mar 2009 23:44:03 -0000	1.18
@@ -252,151 +252,7 @@
 		loop = new LCSimLoop();
 		root = null;
 	}
-
-	/**
-	 * Converts a String <code>value</code> to a Java class specified by <code>propertyType</code>.
-	 * @param value The string value from the XML parameter.
-	 * @param propertyType The type of the parameter.
-	 * @return The value of <code>value</code> as Class <code>propertyType</code>.
-	 */
-	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))
-		{
-			o = Integer.valueOf(value);
-		}
-		// Single String.
-		else if (propertyType.equals(String.class))
-		{
-			o = value;
-		}
-		// Single double.
-		else if (propertyType.equals(double.class))
-		{
-			o = Double.valueOf(value);
-		}
-		// Single float.
-		else if (propertyType.equals(float.class))
-		{
-			o = Float.valueOf(value);
-		}
-		// Single boolean.
-		else if (propertyType.equals(boolean.class))
-		{
-			o = Boolean.valueOf(value);
-		}
-		// Single Hep3Vector type.
-		else if (propertyType.equals(Hep3Vector.class))
-		{
-			StringTokenizer tokenize = new StringTokenizer(value);
-			double x = Double.valueOf(tokenize.nextToken());
-			double y = Double.valueOf(tokenize.nextToken());
-			double z = Double.valueOf(tokenize.nextToken());
-			o = new BasicHep3Vector(x, y, z);
-		}
-		// 1d array of doubles.
-		else if (propertyType.getName().equals("[D"))
-		{
-			StringTokenizer tokenize = new StringTokenizer(value);
-			int size = tokenize.countTokens();
-			double da[] = new double[size];
-			int i = 0;
-			while (tokenize.hasMoreTokens())
-			{
-				da[i] = Double.valueOf(tokenize.nextToken());
-				++i;
-			}
-			o = da;
-		}
-		// 1d array of ints.
-		else if (propertyType.getName().equals("[I"))
-		{
-			StringTokenizer tokenize = new StringTokenizer(value);
-			int size = tokenize.countTokens();
-			int ia[] = new int[size];
-			int i = 0;
-			while (tokenize.hasMoreTokens())
-			{
-				ia[i] = Integer.valueOf(tokenize.nextToken());
-				++i;
-			}
-			o = ia;
-		}
-		// 1d array of floats.
-		else if (propertyType.getName().equals("[F"))
-		{
-			StringTokenizer tokenize = new StringTokenizer(value);
-			int size = tokenize.countTokens();
-			float fa[] = new float[size];
-			int i = 0;
-			while (tokenize.hasMoreTokens())
-			{
-				fa[i] = Float.valueOf(tokenize.nextToken());
-				++i;
-			}
-			o = fa;
-		}
-		// 1d array of strings.
-		else if (propertyType.getName().equals("[Ljava.lang.String;"))
-		{
-			StringTokenizer tokenize = new StringTokenizer(value);
-			int size = tokenize.countTokens();
-			String sa[] = new String[size];
-			int i = 0;
-			while (tokenize.hasMoreTokens())
-			{
-				sa[i] = tokenize.nextToken();
-				++i;
-			}
-			o = sa;
-		}
-		// 1d array of booleans.
-		else if (propertyType.getName().equals("[Z"))
-		{
-			StringTokenizer tokenize = new StringTokenizer(value);
-			int size = tokenize.countTokens();
-			boolean ba[] = new boolean[size];
-			int i = 0;
-			while (tokenize.hasMoreTokens())
-			{
-				ba[i] = Boolean.valueOf(tokenize.nextToken());
-				++i;
-			}
-			o = ba;
-		}
-		// Single File type.
-		else if (propertyType.equals(File.class))
-		{
-			o = new File(value);
-		}
-		// Single URL type.
-		else if (propertyType.equals(URL.class))
-		{
-			try 
-			{
-				o = new URL(value);
-			}
-			catch (MalformedURLException 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;
-	}
-
+	
 	/**
 	 * Add a Driver to the Driver map.
 	 * @param name The unique name of the Driver.
@@ -440,21 +296,7 @@
 		logStream.println("-- End System Properties");
 		logStream.println();
 	}	
-	
-	private static Class getPrimitiveType(String name)
-	{
-		if (name.equals("byte")) return byte.class;
-		if (name.equals("short")) return short.class;
-		if (name.equals("int")) return int.class;
-		if (name.equals("long")) return long.class;
-		if (name.equals("char")) return char.class;
-		if (name.equals("float")) return float.class;
-		if (name.equals("double")) return double.class;
-		if (name.equals("boolean")) return boolean.class;
-		if (name.equals("String")) return String.class;
-		return null;
-	}
-	
+		
 	private void setupInputFiles()
 	{
 		// Read local files.
@@ -869,7 +711,8 @@
 				else if (methList.size() > 1)
 				{
 					if (parameterElement.getAttribute("type") == null)
-						throw new RuntimeException("Parameter " + pname + " is overloaded but type field is missing from parameter!");
+						throw new RuntimeException("Parameter " + pname + " in Driver " + driverClass.getCanonicalName() 
+								+ " is overloaded, but a type field is missing from the parameter's xml element.");
 					try 
 					{
 						// Try a primitive type first.
@@ -902,7 +745,6 @@
 				}														
 				
 				// Create an Object for next Driver parameter using the conversion method.
-				//System.out.println(parameterElement.getValue());
 				Object nextParameter = convertParameter(parameterElement, propertyType);
 								
 				// Invoke the setter.
@@ -936,7 +778,165 @@
 			if (driverFind != null)
 				driverExec.add(driverFind);
 			else
-				throw new RuntimeException("Driver not found: " + driverName);
+				throw new RuntimeException("Driver " + driverName + " was not found.");
+		}
+	}
+	
+	/**
+	 * Converts a String <code>value</code> to a Java class specified by <code>propertyType</code>.
+	 * @param value The string value from the XML parameter.
+	 * @param propertyType The type of the parameter.
+	 * @return The value of <code>value</code> as Class <code>propertyType</code>.
+	 */
+	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))
+		{
+			o = Integer.valueOf(value);
+		}
+		// Single String.
+		else if (propertyType.equals(String.class))
+		{
+			o = value;
+		}
+		// Single double.
+		else if (propertyType.equals(double.class))
+		{
+			o = Double.valueOf(value);
+		}
+		// Single float.
+		else if (propertyType.equals(float.class))
+		{
+			o = Float.valueOf(value);
+		}
+		// Single boolean.
+		else if (propertyType.equals(boolean.class))
+		{
+			o = Boolean.valueOf(value);
+		}
+		// Single Hep3Vector type.
+		else if (propertyType.equals(Hep3Vector.class))
+		{
+			StringTokenizer tokenize = new StringTokenizer(value);
+			double x = Double.valueOf(tokenize.nextToken());
+			double y = Double.valueOf(tokenize.nextToken());
+			double z = Double.valueOf(tokenize.nextToken());
+			o = new BasicHep3Vector(x, y, z);
+		}
+		// 1d array of doubles.
+		else if (propertyType.getName().equals("[D"))
+		{
+			StringTokenizer tokenize = new StringTokenizer(value);
+			int size = tokenize.countTokens();
+			double da[] = new double[size];
+			int i = 0;
+			while (tokenize.hasMoreTokens())
+			{
+				da[i] = Double.valueOf(tokenize.nextToken());
+				++i;
+			}
+			o = da;
+		}
+		// 1d array of ints.
+		else if (propertyType.getName().equals("[I"))
+		{
+			StringTokenizer tokenize = new StringTokenizer(value);
+			int size = tokenize.countTokens();
+			int ia[] = new int[size];
+			int i = 0;
+			while (tokenize.hasMoreTokens())
+			{
+				ia[i] = Integer.valueOf(tokenize.nextToken());
+				++i;
+			}
+			o = ia;
 		}
+		// 1d array of floats.
+		else if (propertyType.getName().equals("[F"))
+		{
+			StringTokenizer tokenize = new StringTokenizer(value);
+			int size = tokenize.countTokens();
+			float fa[] = new float[size];
+			int i = 0;
+			while (tokenize.hasMoreTokens())
+			{
+				fa[i] = Float.valueOf(tokenize.nextToken());
+				++i;
+			}
+			o = fa;
+		}
+		// 1d array of strings.
+		else if (propertyType.getName().equals("[Ljava.lang.String;"))
+		{
+			StringTokenizer tokenize = new StringTokenizer(value);
+			int size = tokenize.countTokens();
+			String sa[] = new String[size];
+			int i = 0;
+			while (tokenize.hasMoreTokens())
+			{
+				sa[i] = tokenize.nextToken();
+				++i;
+			}
+			o = sa;
+		}
+		// 1d array of booleans.
+		else if (propertyType.getName().equals("[Z"))
+		{
+			StringTokenizer tokenize = new StringTokenizer(value);
+			int size = tokenize.countTokens();
+			boolean ba[] = new boolean[size];
+			int i = 0;
+			while (tokenize.hasMoreTokens())
+			{
+				ba[i] = Boolean.valueOf(tokenize.nextToken());
+				++i;
+			}
+			o = ba;
+		}
+		// Single File type.
+		else if (propertyType.equals(File.class))
+		{
+			o = new File(value);
+		}
+		// Single URL type.
+		else if (propertyType.equals(URL.class))
+		{
+			try 
+			{
+				o = new URL(value);
+			}
+			catch (MalformedURLException 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;
 	}
+	
+	private static Class getPrimitiveType(String name)
+	{
+		if (name.equals("byte")) return byte.class;
+		if (name.equals("short")) return short.class;
+		if (name.equals("int")) return int.class;
+		if (name.equals("long")) return long.class;
+		if (name.equals("char")) return char.class;
+		if (name.equals("float")) return float.class;
+		if (name.equals("double")) return double.class;
+		if (name.equals("boolean")) return boolean.class;
+		if (name.equals("String")) return String.class;
+		return null;
+	}	
 }
CVSspam 0.2.8