mstover1 02/03/02 11:53:45 Modified: src/org/apache/jmeter/util JMeterUtils.java Log: Using the @VERSION@ token to automatically update version Revision Changes Path 1.24 +864 -864 jakarta-jmeter/src/org/apache/jmeter/util/JMeterUtils.java Index: JMeterUtils.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/util/JMeterUtils.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- JMeterUtils.java 20 Feb 2002 02:36:30 -0000 1.23 +++ JMeterUtils.java 2 Mar 2002 19:53:45 -0000 1.24 @@ -76,874 +76,874 @@ * *@author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a> *@created June 28, 2001 - *@version $Revision: 1.23 $ $Date: 2002/02/20 02:36:30 $ + *@version $Revision: 1.24 $ $Date: 2002/03/02 19:53:45 $ */ public class JMeterUtils { - private static final SAXParserFactory xmlFactory; + private static final SAXParserFactory xmlFactory; - static { - SAXParserFactory temp = null; - try { - temp = SAXParserFactory.newInstance(); - } catch(Exception e) { - temp = null; - } - - xmlFactory = temp; - } - - - private static Properties appProperties; - public static ResourceBundle RESOURCES = ResourceBundle.getBundle("org.apache.jmeter.resources.messages"); - - - /** - * This method is used by the init method to load the property file that may - * even reside in the user space, or in the classpath under - * org.apache.jmeter.jmeter.properties - * - *@param file Description of Parameter - *@return The Properties value - */ - public static Properties getProperties(String file) - { - Properties p = new Properties(System.getProperties()); - try - { - File f = new File(file); - p.load(new FileInputStream(f)); - } - catch (Exception e) - { - try - { - p.load(JMeterUtils.class.getClassLoader().getSystemResourceAsStream("org/apache/jmeter/jmeter.properties")); - } - catch (IOException ex) - { - //JMeter.fail("Could not read internal resource. Archive is broken."); - } - } - appProperties = p; - return p; - } - - /** - * Gets the resource string for this key. - * @param key the key in the resource file - * @return the resource string if the key is found; otherwise, return an empty string - */ - public static String getResString(String key) - { - String resString = null; - - try - { - resString = RESOURCES.getString(key); - } - catch (MissingResourceException mre) - { - System.out.println("ERROR! Resource string not found: [" + key + "]"); - resString = ""; - } - - return resString; - } - - /** - * This gets the currently defined appProperties. It can only be called after - * the getProperties(String file) method is called. - * - *@return The JMeterProperties value - */ - public static Properties getJMeterProperties() - { - return appProperties; - } - - /** - * This looks for the requested image in the classpath under - * org.apache.jmeter.images. <name> - * - *@param name Description of Parameter - *@return The Image value - */ - public static ImageIcon getImage(String name) - { - try - { - return new ImageIcon(JMeterUtils.class.getClassLoader().getResource( - "org/apache/jmeter/images/" + name.trim())); - } - catch(NullPointerException e) - { - System.out.println(name); - return null; - } - } - - /** - * Creates the vector of Timers plugins. - * - *@param properties Description of Parameter - *@return The Timers value - */ - public static Vector getTimers(Properties properties) - { - return instantiate(getVector(properties, "timer."), "org.apache.jmeter.timers.Timer"); - } - - /** - * Creates the vector of visualizer plugins. - * - *@param properties Description of Parameter - *@return The Visualizers value - */ - public static Vector getVisualizers(Properties properties) - { - return instantiate(getVector(properties, "visualizer."), - "org.apache.jmeter.visualizers.Visualizer"); - } - - /** - * Creates a vector of SampleController plugins. - * - *@param properties The properties with information about the samplers - *@return The Controllers value - */ - public static Vector getControllers(Properties properties) - { - String name = "controller."; - Vector v = new Vector(); - Enumeration names = properties.keys(); - while (names.hasMoreElements()) - { - String prop = (String) names.nextElement(); - if (prop.startsWith(name)) - { - Object o = instantiate(properties.getProperty(prop), - "org.apache.jmeter.control.SamplerController"); - v.addElement(o); - } - } - return v; - } - - /** - * Create a string of class names for a particular SamplerController - * - *@param properties The properties with info about the samples. - *@param name The name of the sampler controller. - *@return The TestSamples value - */ - public static String[] getTestSamples(Properties properties, String name) - { - return (String[]) getVector(properties, name + ".testsample").toArray(new String[0]); - } - - /** - * Create an instance of an org.xml.sax.Parser - * - * @deprecated use the plain version instead. We are using JAXP! - *@param properties The properties file containing the parser's class name - *@return The XMLParser value - */ - public static XMLReader getXMLParser(Properties properties) - { - return getXMLParser(); - } - - /** - * Create an instance of an org.xml.sax.Parser based on the default props. - * - *@return The XMLParser value - */ - public static XMLReader getXMLParser() - { - XMLReader reader = null; - - try { - reader = xmlFactory.newSAXParser().getXMLReader(); - } catch (Exception e) { - reader = (XMLReader) instantiate(getPropDefault("xml.parser", "org.apache.xerces.parsers.SAXParser"), "org.xml.sax.XMLReader"); - } - - return reader; - } - - /** - * Creates the vector of alias strings. - * - *@param properties Description of Parameter - *@return The Alias value - */ - public static Hashtable getAlias(Properties properties) - { - return getHashtable(properties, "alias."); - } - - /** - * Creates a vector of strings for all the properties that start with a common - * prefix. - * - *@param properties Description of Parameter - *@param name Description of Parameter - *@return The Vector value - */ - public static Vector getVector(Properties properties, String name) - { - Vector v = new Vector(); - Enumeration names = properties.keys(); - while (names.hasMoreElements()) - { - String prop = (String) names.nextElement(); - if (prop.startsWith(name)) - { - v.addElement(properties.getProperty(prop)); - } - } - return v; - } - - /** - * Creates a vector of strings for all the properties that start with a common - * prefix. - * - *@param properties Description of Parameter - *@param name Description of Parameter - *@return The Hashtable value - */ - public static Hashtable getHashtable(Properties properties, String name) - { - Hashtable t = new Hashtable(); - Enumeration names = properties.keys(); - while (names.hasMoreElements()) - { - String prop = (String) names.nextElement(); - if (prop.startsWith(name)) - { - t.put(prop.substring(name.length()), properties.getProperty(prop)); - } - } - return t; - } - - /** - * Get a int value with default if not present. - * - *@param propName the name of the property. - *@param defaultVal the default value. - *@return The PropDefault value - */ - public static int getPropDefault(String propName, int defaultVal) - { - int ans; - try - { - ans = (Integer.valueOf( - appProperties.getProperty(propName, Integer.toString(defaultVal)).trim())).intValue(); - } - catch (Exception e) - { - ans = defaultVal; - } - return ans; - } - - /** - * Get a boolean value with default if not present. - * - *@param propName the name of the property. - *@param defaultVal the default value. - *@return The PropDefault value - */ - public static boolean getPropDefault(String propName, boolean defaultVal) - { - boolean ans; - try - { - String strVal = appProperties.getProperty(propName, - (new Boolean(defaultVal)).toString()).trim(); - if (strVal.equalsIgnoreCase("true") || strVal.equalsIgnoreCase("t")) - { - ans = true; - } - else if (strVal.equalsIgnoreCase("false") || strVal.equalsIgnoreCase("f")) - { - ans = false; - } - else - { - ans = ((Integer.valueOf(strVal)).intValue() == 1); - } - } - catch (Exception e) - { - ans = defaultVal; - } - return ans; - } - - /** - * Get a long value with default if not present. - * - *@param propName the name of the property. - *@param defaultVal the default value. - *@return The PropDefault value - */ - public static long getPropDefault(String propName, long defaultVal) - { - long ans; - try - { - ans = (Long.valueOf(appProperties.getProperty(propName, Long.toString(defaultVal)).trim())).longValue(); - } - catch (Exception e) - { - ans = defaultVal; - } - return ans; - } - - /** - * Get a String value with default if not present. - * - *@param propName the name of the property. - *@param defaultVal the default value. - *@return The PropDefault value - */ - public static String getPropDefault(String propName, String defaultVal) - { - String ans; - try - { - ans = appProperties.getProperty(propName, defaultVal).trim(); - } - catch (Exception e) - { - ans = defaultVal; - } - return ans; - } - - /** - * Sets the selection of the JComboBox to the Object 'name' from the list in - * namVec. - * - *@param properties Description of Parameter - *@param combo Description of Parameter - *@param namVec Description of Parameter - *@param name Description of Parameter - */ - - public static void selJComboBoxItem(Properties properties, JComboBox combo, Vector namVec, String name) - { - - int idx = namVec.indexOf(name); - - - combo.setSelectedIndex(idx); - - - // Redisplay. - - combo.updateUI(); - - return; - } - - - /** - * Instatiate an object and guarantee its class. - * - *@param className The name of the class to instantiate. - *@param impls The name of the class it subclases. - *@return Description of the Returned Value - */ - - public static Object instantiate(String className, String impls) - { - if (className != null) className.trim(); - if (impls != null) className.trim(); - - try - { - - Class c = Class.forName(impls); - - - try - { - - Class o = Class.forName(className); - - - Object res = o.newInstance(); - - if (c.isInstance(res)) - { - - return res; - } - - else - { - - throw new IllegalArgumentException - (className + " is not an instance of " + impls); - } - - } - - catch (ClassNotFoundException e) - { - - System.err.println("Error loading class " + - className + ": class is not found"); - - } - - catch (IllegalAccessException e) - { - - System.err.println("Error loading class " + className + - ": does not have access"); - - } - - catch (InstantiationException e) - { - - System.err.println("Error loading class " + className + - ": could not instantiate"); - - } - - catch (NoClassDefFoundError e) - { - - System.err.println("Error loading class " + className + - ": couldn't find class " + e.getMessage()); - - } - - } - - catch (ClassNotFoundException e) - { - - System.err.println("Error loading class " + impls + - ": was not found."); - - } - - return null; - } - - - /** - * Instantiate a vector of classes - * - *@param v Description of Parameter - *@param className Description of Parameter - *@return Description of the Returned Value - */ - - public static Vector instantiate(Vector v, String className) - { - - Vector i = new Vector(); - - - try - { - - Class c = Class.forName(className); - - Enumeration elements = v.elements(); - - while (elements.hasMoreElements()) - { - - String name = (String) elements.nextElement(); - - try - { - - Object o = Class.forName(name).newInstance(); - - if (c.isInstance(o)) - { - - i.addElement(o); - - } - - } - - catch (ClassNotFoundException e) - { - - System.err.println("Error loading class " + - name + ": class is not found"); - - } - - catch (IllegalAccessException e) - { - - System.err.println("Error loading class " + name + ": does not have access"); - - } - - catch (InstantiationException e) - { - - System.err.println("Error loading class " + name + ": could not instantiate"); - - } - - catch (NoClassDefFoundError e) - { - - System.err.println("Error loading class " + name + ": couldn't find class " + e.getMessage()); - - } - - - } - - } - catch (ClassNotFoundException e) - { - - System.err.println("Error loading class " + className + ": class is not found"); - - } - - - return i; - } - - - /** - * Tokenize a string into a vector of tokens - * - *@param string Description of Parameter - *@param separator Description of Parameter - *@return Description of the Returned Value - */ - - public static Vector tokenize(String string, String separator) - { - - Vector v = new Vector(); - - StringTokenizer s = new StringTokenizer(string, separator); - - while (s.hasMoreTokens()) - { - - v.addElement(s.nextToken()); - - } - - return v; - } - - - /** - * Create a button with the netscape style - * - *@param name Description of Parameter - *@param listener Description of Parameter - *@return Description of the Returned Value - */ - - public static JButton createButton(String name, ActionListener listener) - { - - JButton button = new JButton(getImage(name + ".on.gif")); - - button.setDisabledIcon(getImage(name + ".off.gif")); - - button.setRolloverIcon(getImage(name + ".over.gif")); - - button.setPressedIcon(getImage(name + ".down.gif")); - - button.setActionCommand(name); - - button.addActionListener(listener); - - button.setRolloverEnabled(true); - - button.setFocusPainted(false); - - button.setBorderPainted(false); - - button.setOpaque(false); - - button.setPreferredSize(new Dimension(24, 24)); - - return button; - } - - - /** - * Create a button with the netscape style - * - *@param name Description of Parameter - *@param listener Description of Parameter - *@return Description of the Returned Value - */ - - public static JButton createSimpleButton(String name, ActionListener listener) - { - - JButton button = new JButton(getImage(name + ".gif")); - - button.setActionCommand(name); - - button.addActionListener(listener); - - button.setFocusPainted(false); - - button.setBorderPainted(false); - - button.setOpaque(false); - - button.setPreferredSize(new Dimension(25, 25)); - - return button; - } - - - /** - * Takes a String and a tokenizer character, and returns a new array of - * strings of the string split by the tokenizer character. - * - *@param splittee String to be split - *@param splitChar Character to split the string on - *@return Array of all the tokens. - */ - - public static String[] split(String splittee, String splitChar) - { - if (splittee == null || splitChar == null) - { - return new String[0]; - } - StringTokenizer tokens; - String temp; - int spot; - while ((spot = splittee.indexOf(splitChar + splitChar)) != -1) - { - splittee = splittee.substring(0, spot + splitChar.length()) + - splittee.substring(spot + 2 * splitChar.length(), - splittee.length()); - } - Vector returns = new Vector(); - int start = 0; - int length = splittee.length(); - spot = 0; - while (start < length && (spot = splittee.indexOf(splitChar, start)) > -1) - { - if (spot > 0) - { - returns.addElement(splittee.substring(start, spot)); - } - start = spot + splitChar.length(); - } - if (start < length) - { - returns.add(splittee.substring(start)); - } - String[] values = new String[returns.size()]; - returns.copyInto(values); - return values; - } - // End Method - - - /** - * Takes a String and a tokenizer character, and returns a new array of - * strings of the string split by the tokenizer character. - * - *@param splittee String to be split - *@param splitChar Character to split the string on - *@param def Default value to place between two split chars that have - * nothing between them - *@return Array of all the tokens. - */ - - public static String[] split(String splittee, String splitChar, String def) - { - if (splittee == null || splitChar == null) - { - return new String[0]; - } - StringTokenizer tokens; - String temp; - int spot; - while ((spot = splittee.indexOf(splitChar + splitChar)) != -1) - { - splittee = splittee.substring(0, spot + splitChar.length()) + def + - splittee.substring(spot + 1 * splitChar.length(), - splittee.length()); - } - Vector returns = new Vector(); - int start = 0; - int length = splittee.length(); - spot = 0; - while (start < length && (spot = splittee.indexOf(splitChar, start)) > -1) - { - if (spot > 0) - { - returns.addElement(splittee.substring(start, spot)); - } - start = spot + splitChar.length(); - } - if (start < length) - { - returns.add(splittee.substring(start)); - } - String[] values = new String[returns.size()]; - returns.copyInto(values); - return values; - } - - /** - * Report an error through a dialog box. - * - *@param errorMsg the error message. - */ - public static void reportErrorToUser(String errorMsg) - { - JOptionPane.showMessageDialog(GuiPackage.getInstance().getMainFrame(), - errorMsg,"Error",JOptionPane.ERROR_MESSAGE); - } - - /** - * Finds a string in an array of strings and returns the - * - *@param array Array of strings. - *@param value String to compare to array values. - *@return Index of value in array, or -1 if not in array. - */ - - public static int findInArray(String[] array, String value) - { - int count = -1; - int index = -1; - if (array != null && value != null) - { - while (++count < array.length) - { - if (array[count] != null && array[count].equals(value)) - { - index = count; - break; - } - } - } - return index; - } - - - /** - * Takes an array of strings and a tokenizer character, and returns a string - * of all the strings concatenated with the tokenizer string in between each - * one. - * - *@param splittee Array of Objects to be concatenated. - *@param splitChar Object to unsplit the strings with. - *@return Array of all the tokens. - */ - - public static String unsplit(Object[] splittee, Object splitChar) - { - - StringBuffer retVal = new StringBuffer(""); - - int count = -1; - - while (++count < splittee.length) - { - - if (splittee[count] != null) - { - - retVal.append(splittee[count]); - } - - if (count + 1 < splittee.length && splittee[count + 1] != null) - { - - retVal.append(splitChar); - } - - } - - return retVal.toString(); - } - // End Method - - - /** - * Takes an array of strings and a tokenizer character, and returns a string - * of all the strings concatenated with the tokenizer string in between each - * one. - * - *@param splittee Array of Objects to be concatenated. - *@param splitChar Object to unsplit the strings with. - *@param def Default value to replace null values in array. - *@return Array of all the tokens. - */ - - public static String unsplit(Object[] splittee, Object splitChar, String def) - { - - StringBuffer retVal = new StringBuffer(""); - - int count = -1; - - while (++count < splittee.length) - { - - if (splittee[count] != null) - { - - retVal.append(splittee[count]); - } - - else - { - - retVal.append(def); - } - - if (count + 1 < splittee.length) - { - - retVal.append(splitChar); - } - - } - - return retVal.toString(); - } - // End Method - - - /** - * Gets the JMeter Version. - * @returns the JMeter version. - */ - public static String getJMeterVersion() - { - return "1.7Beta3"; - } + static { + SAXParserFactory temp = null; + try { + temp = SAXParserFactory.newInstance(); + } catch(Exception e) { + temp = null; + } + + xmlFactory = temp; + } + + + private static Properties appProperties; + public static ResourceBundle RESOURCES = ResourceBundle.getBundle("org.apache.jmeter.resources.messages"); + + + /** + * This method is used by the init method to load the property file that may + * even reside in the user space, or in the classpath under + * org.apache.jmeter.jmeter.properties + * + *@param file Description of Parameter + *@return The Properties value + */ + public static Properties getProperties(String file) + { + Properties p = new Properties(System.getProperties()); + try + { + File f = new File(file); + p.load(new FileInputStream(f)); + } + catch (Exception e) + { + try + { + p.load(JMeterUtils.class.getClassLoader().getSystemResourceAsStream("org/apache/jmeter/jmeter.properties")); + } + catch (IOException ex) + { + //JMeter.fail("Could not read internal resource. Archive is broken."); + } + } + appProperties = p; + return p; + } + + /** + * Gets the resource string for this key. + * @param key the key in the resource file + * @return the resource string if the key is found; otherwise, return an empty string + */ + public static String getResString(String key) + { + String resString = null; + + try + { + resString = RESOURCES.getString(key); + } + catch (MissingResourceException mre) + { + System.out.println("ERROR! Resource string not found: [" + key + "]"); + resString = ""; + } + + return resString; + } + + /** + * This gets the currently defined appProperties. It can only be called after + * the getProperties(String file) method is called. + * + *@return The JMeterProperties value + */ + public static Properties getJMeterProperties() + { + return appProperties; + } + + /** + * This looks for the requested image in the classpath under + * org.apache.jmeter.images. <name> + * + *@param name Description of Parameter + *@return The Image value + */ + public static ImageIcon getImage(String name) + { + try + { + return new ImageIcon(JMeterUtils.class.getClassLoader().getResource( + "org/apache/jmeter/images/" + name.trim())); + } + catch(NullPointerException e) + { + System.out.println(name); + return null; + } + } + + /** + * Creates the vector of Timers plugins. + * + *@param properties Description of Parameter + *@return The Timers value + */ + public static Vector getTimers(Properties properties) + { + return instantiate(getVector(properties, "timer."), "org.apache.jmeter.timers.Timer"); + } + + /** + * Creates the vector of visualizer plugins. + * + *@param properties Description of Parameter + *@return The Visualizers value + */ + public static Vector getVisualizers(Properties properties) + { + return instantiate(getVector(properties, "visualizer."), + "org.apache.jmeter.visualizers.Visualizer"); + } + + /** + * Creates a vector of SampleController plugins. + * + *@param properties The properties with information about the samplers + *@return The Controllers value + */ + public static Vector getControllers(Properties properties) + { + String name = "controller."; + Vector v = new Vector(); + Enumeration names = properties.keys(); + while (names.hasMoreElements()) + { + String prop = (String) names.nextElement(); + if (prop.startsWith(name)) + { + Object o = instantiate(properties.getProperty(prop), + "org.apache.jmeter.control.SamplerController"); + v.addElement(o); + } + } + return v; + } + + /** + * Create a string of class names for a particular SamplerController + * + *@param properties The properties with info about the samples. + *@param name The name of the sampler controller. + *@return The TestSamples value + */ + public static String[] getTestSamples(Properties properties, String name) + { + return (String[]) getVector(properties, name + ".testsample").toArray(new String[0]); + } + + /** + * Create an instance of an org.xml.sax.Parser + * + * @deprecated use the plain version instead. We are using JAXP! + *@param properties The properties file containing the parser's class name + *@return The XMLParser value + */ + public static XMLReader getXMLParser(Properties properties) + { + return getXMLParser(); + } + + /** + * Create an instance of an org.xml.sax.Parser based on the default props. + * + *@return The XMLParser value + */ + public static XMLReader getXMLParser() + { + XMLReader reader = null; + + try { + reader = xmlFactory.newSAXParser().getXMLReader(); + } catch (Exception e) { + reader = (XMLReader) instantiate(getPropDefault("xml.parser", "org.apache.xerces.parsers.SAXParser"), "org.xml.sax.XMLReader"); + } + + return reader; + } + + /** + * Creates the vector of alias strings. + * + *@param properties Description of Parameter + *@return The Alias value + */ + public static Hashtable getAlias(Properties properties) + { + return getHashtable(properties, "alias."); + } + + /** + * Creates a vector of strings for all the properties that start with a common + * prefix. + * + *@param properties Description of Parameter + *@param name Description of Parameter + *@return The Vector value + */ + public static Vector getVector(Properties properties, String name) + { + Vector v = new Vector(); + Enumeration names = properties.keys(); + while (names.hasMoreElements()) + { + String prop = (String) names.nextElement(); + if (prop.startsWith(name)) + { + v.addElement(properties.getProperty(prop)); + } + } + return v; + } + + /** + * Creates a vector of strings for all the properties that start with a common + * prefix. + * + *@param properties Description of Parameter + *@param name Description of Parameter + *@return The Hashtable value + */ + public static Hashtable getHashtable(Properties properties, String name) + { + Hashtable t = new Hashtable(); + Enumeration names = properties.keys(); + while (names.hasMoreElements()) + { + String prop = (String) names.nextElement(); + if (prop.startsWith(name)) + { + t.put(prop.substring(name.length()), properties.getProperty(prop)); + } + } + return t; + } + + /** + * Get a int value with default if not present. + * + *@param propName the name of the property. + *@param defaultVal the default value. + *@return The PropDefault value + */ + public static int getPropDefault(String propName, int defaultVal) + { + int ans; + try + { + ans = (Integer.valueOf( + appProperties.getProperty(propName, Integer.toString(defaultVal)).trim())).intValue(); + } + catch (Exception e) + { + ans = defaultVal; + } + return ans; + } + + /** + * Get a boolean value with default if not present. + * + *@param propName the name of the property. + *@param defaultVal the default value. + *@return The PropDefault value + */ + public static boolean getPropDefault(String propName, boolean defaultVal) + { + boolean ans; + try + { + String strVal = appProperties.getProperty(propName, + (new Boolean(defaultVal)).toString()).trim(); + if (strVal.equalsIgnoreCase("true") || strVal.equalsIgnoreCase("t")) + { + ans = true; + } + else if (strVal.equalsIgnoreCase("false") || strVal.equalsIgnoreCase("f")) + { + ans = false; + } + else + { + ans = ((Integer.valueOf(strVal)).intValue() == 1); + } + } + catch (Exception e) + { + ans = defaultVal; + } + return ans; + } + + /** + * Get a long value with default if not present. + * + *@param propName the name of the property. + *@param defaultVal the default value. + *@return The PropDefault value + */ + public static long getPropDefault(String propName, long defaultVal) + { + long ans; + try + { + ans = (Long.valueOf(appProperties.getProperty(propName, Long.toString(defaultVal)).trim())).longValue(); + } + catch (Exception e) + { + ans = defaultVal; + } + return ans; + } + + /** + * Get a String value with default if not present. + * + *@param propName the name of the property. + *@param defaultVal the default value. + *@return The PropDefault value + */ + public static String getPropDefault(String propName, String defaultVal) + { + String ans; + try + { + ans = appProperties.getProperty(propName, defaultVal).trim(); + } + catch (Exception e) + { + ans = defaultVal; + } + return ans; + } + + /** + * Sets the selection of the JComboBox to the Object 'name' from the list in + * namVec. + * + *@param properties Description of Parameter + *@param combo Description of Parameter + *@param namVec Description of Parameter + *@param name Description of Parameter + */ + + public static void selJComboBoxItem(Properties properties, JComboBox combo, Vector namVec, String name) + { + + int idx = namVec.indexOf(name); + + + combo.setSelectedIndex(idx); + + + // Redisplay. + + combo.updateUI(); + + return; + } + + + /** + * Instatiate an object and guarantee its class. + * + *@param className The name of the class to instantiate. + *@param impls The name of the class it subclases. + *@return Description of the Returned Value + */ + + public static Object instantiate(String className, String impls) + { + if (className != null) className.trim(); + if (impls != null) className.trim(); + + try + { + + Class c = Class.forName(impls); + + + try + { + + Class o = Class.forName(className); + + + Object res = o.newInstance(); + + if (c.isInstance(res)) + { + + return res; + } + + else + { + + throw new IllegalArgumentException + (className + " is not an instance of " + impls); + } + + } + + catch (ClassNotFoundException e) + { + + System.err.println("Error loading class " + + className + ": class is not found"); + + } + + catch (IllegalAccessException e) + { + + System.err.println("Error loading class " + className + + ": does not have access"); + + } + + catch (InstantiationException e) + { + + System.err.println("Error loading class " + className + + ": could not instantiate"); + + } + + catch (NoClassDefFoundError e) + { + + System.err.println("Error loading class " + className + + ": couldn't find class " + e.getMessage()); + + } + + } + + catch (ClassNotFoundException e) + { + + System.err.println("Error loading class " + impls + + ": was not found."); + + } + + return null; + } + + + /** + * Instantiate a vector of classes + * + *@param v Description of Parameter + *@param className Description of Parameter + *@return Description of the Returned Value + */ + + public static Vector instantiate(Vector v, String className) + { + + Vector i = new Vector(); + + + try + { + + Class c = Class.forName(className); + + Enumeration elements = v.elements(); + + while (elements.hasMoreElements()) + { + + String name = (String) elements.nextElement(); + + try + { + + Object o = Class.forName(name).newInstance(); + + if (c.isInstance(o)) + { + + i.addElement(o); + + } + + } + + catch (ClassNotFoundException e) + { + + System.err.println("Error loading class " + + name + ": class is not found"); + + } + + catch (IllegalAccessException e) + { + + System.err.println("Error loading class " + name + ": does not have access"); + + } + + catch (InstantiationException e) + { + + System.err.println("Error loading class " + name + ": could not instantiate"); + + } + + catch (NoClassDefFoundError e) + { + + System.err.println("Error loading class " + name + ": couldn't find class " + e.getMessage()); + + } + + + } + + } + catch (ClassNotFoundException e) + { + + System.err.println("Error loading class " + className + ": class is not found"); + + } + + + return i; + } + + + /** + * Tokenize a string into a vector of tokens + * + *@param string Description of Parameter + *@param separator Description of Parameter + *@return Description of the Returned Value + */ + + public static Vector tokenize(String string, String separator) + { + + Vector v = new Vector(); + + StringTokenizer s = new StringTokenizer(string, separator); + + while (s.hasMoreTokens()) + { + + v.addElement(s.nextToken()); + + } + + return v; + } + + + /** + * Create a button with the netscape style + * + *@param name Description of Parameter + *@param listener Description of Parameter + *@return Description of the Returned Value + */ + + public static JButton createButton(String name, ActionListener listener) + { + + JButton button = new JButton(getImage(name + ".on.gif")); + + button.setDisabledIcon(getImage(name + ".off.gif")); + + button.setRolloverIcon(getImage(name + ".over.gif")); + + button.setPressedIcon(getImage(name + ".down.gif")); + + button.setActionCommand(name); + + button.addActionListener(listener); + + button.setRolloverEnabled(true); + + button.setFocusPainted(false); + + button.setBorderPainted(false); + + button.setOpaque(false); + + button.setPreferredSize(new Dimension(24, 24)); + + return button; + } + + + /** + * Create a button with the netscape style + * + *@param name Description of Parameter + *@param listener Description of Parameter + *@return Description of the Returned Value + */ + + public static JButton createSimpleButton(String name, ActionListener listener) + { + + JButton button = new JButton(getImage(name + ".gif")); + + button.setActionCommand(name); + + button.addActionListener(listener); + + button.setFocusPainted(false); + + button.setBorderPainted(false); + + button.setOpaque(false); + + button.setPreferredSize(new Dimension(25, 25)); + + return button; + } + + + /** + * Takes a String and a tokenizer character, and returns a new array of + * strings of the string split by the tokenizer character. + * + *@param splittee String to be split + *@param splitChar Character to split the string on + *@return Array of all the tokens. + */ + + public static String[] split(String splittee, String splitChar) + { + if (splittee == null || splitChar == null) + { + return new String[0]; + } + StringTokenizer tokens; + String temp; + int spot; + while ((spot = splittee.indexOf(splitChar + splitChar)) != -1) + { + splittee = splittee.substring(0, spot + splitChar.length()) + + splittee.substring(spot + 2 * splitChar.length(), + splittee.length()); + } + Vector returns = new Vector(); + int start = 0; + int length = splittee.length(); + spot = 0; + while (start < length && (spot = splittee.indexOf(splitChar, start)) > -1) + { + if (spot > 0) + { + returns.addElement(splittee.substring(start, spot)); + } + start = spot + splitChar.length(); + } + if (start < length) + { + returns.add(splittee.substring(start)); + } + String[] values = new String[returns.size()]; + returns.copyInto(values); + return values; + } + // End Method + + + /** + * Takes a String and a tokenizer character, and returns a new array of + * strings of the string split by the tokenizer character. + * + *@param splittee String to be split + *@param splitChar Character to split the string on + *@param def Default value to place between two split chars that have + * nothing between them + *@return Array of all the tokens. + */ + + public static String[] split(String splittee, String splitChar, String def) + { + if (splittee == null || splitChar == null) + { + return new String[0]; + } + StringTokenizer tokens; + String temp; + int spot; + while ((spot = splittee.indexOf(splitChar + splitChar)) != -1) + { + splittee = splittee.substring(0, spot + splitChar.length()) + def + + splittee.substring(spot + 1 * splitChar.length(), + splittee.length()); + } + Vector returns = new Vector(); + int start = 0; + int length = splittee.length(); + spot = 0; + while (start < length && (spot = splittee.indexOf(splitChar, start)) > -1) + { + if (spot > 0) + { + returns.addElement(splittee.substring(start, spot)); + } + start = spot + splitChar.length(); + } + if (start < length) + { + returns.add(splittee.substring(start)); + } + String[] values = new String[returns.size()]; + returns.copyInto(values); + return values; + } + + /** + * Report an error through a dialog box. + * + *@param errorMsg the error message. + */ + public static void reportErrorToUser(String errorMsg) + { + JOptionPane.showMessageDialog(GuiPackage.getInstance().getMainFrame(), + errorMsg,"Error",JOptionPane.ERROR_MESSAGE); + } + + /** + * Finds a string in an array of strings and returns the + * + *@param array Array of strings. + *@param value String to compare to array values. + *@return Index of value in array, or -1 if not in array. + */ + + public static int findInArray(String[] array, String value) + { + int count = -1; + int index = -1; + if (array != null && value != null) + { + while (++count < array.length) + { + if (array[count] != null && array[count].equals(value)) + { + index = count; + break; + } + } + } + return index; + } + + + /** + * Takes an array of strings and a tokenizer character, and returns a string + * of all the strings concatenated with the tokenizer string in between each + * one. + * + *@param splittee Array of Objects to be concatenated. + *@param splitChar Object to unsplit the strings with. + *@return Array of all the tokens. + */ + + public static String unsplit(Object[] splittee, Object splitChar) + { + + StringBuffer retVal = new StringBuffer(""); + + int count = -1; + + while (++count < splittee.length) + { + + if (splittee[count] != null) + { + + retVal.append(splittee[count]); + } + + if (count + 1 < splittee.length && splittee[count + 1] != null) + { + + retVal.append(splitChar); + } + + } + + return retVal.toString(); + } + // End Method + + + /** + * Takes an array of strings and a tokenizer character, and returns a string + * of all the strings concatenated with the tokenizer string in between each + * one. + * + *@param splittee Array of Objects to be concatenated. + *@param splitChar Object to unsplit the strings with. + *@param def Default value to replace null values in array. + *@return Array of all the tokens. + */ + + public static String unsplit(Object[] splittee, Object splitChar, String def) + { + + StringBuffer retVal = new StringBuffer(""); + + int count = -1; + + while (++count < splittee.length) + { + + if (splittee[count] != null) + { + + retVal.append(splittee[count]); + } + + else + { + + retVal.append(def); + } + + if (count + 1 < splittee.length) + { + + retVal.append(splitChar); + } + + } + + return retVal.toString(); + } + // End Method + + + /** + * Gets the JMeter Version. + * @returns the JMeter version. + */ + public static String getJMeterVersion() + { + return "@VERSION@"; + } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>