hammant 01/11/02 14:37:52
Modified: apps/db build.xml
apps/db/src/java/org/apache/avalon/db/driver
AvalonDBDriver.java
Added: apps/db/src/java/org/apache/avalon/db/test TestGUI.java
apps/db/src/java/org/apache/avalon/db/utils StringUtils.java
Tokenizer.java
apps/db/src/manifest test-gui.mf
Log:
New GUI testclient and utility packages from Cocoon
Revision Changes Path
1.9 +14 -2 jakarta-avalon-cornerstone/apps/db/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/build.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- build.xml 2001/11/02 12:17:32 1.8
+++ build.xml 2001/11/02 22:37:52 1.9
@@ -109,7 +109,7 @@
<include name="org/apache/avalon/db/**"/>
<exclude name="org/apache/avalon/db/transport/cmdstream/client/**"/>
<exclude name="org/apache/avalon/db/driver/**"/>
- <exclude name="org/apache/avalon/db/test/**"/>
+ <exclude name="org/apache/avalon/db/test/**"/>
</fileset>
<fileset dir="${java.dir}">
<include name="org/apache/avalon/db/**/*.xinfo"/>
@@ -124,9 +124,21 @@
<include name="org/apache/avalon/db/transport/*"/>
<include name="org/apache/avalon/db/common/**"/>
<include name="org/apache/avalon/db/driver/**"/>
- <include name="org/apache/avalon/db/results/**"/>
+ <include name="org/apache/avalon/db/results/**"/>
+ <include name="org/apache/avalon/db/utils/**"/>
</fileset>
</jar>
+
+
+ <!-- Test GUI -->
+ <jar file="${build.lib}/avalon-db-testgui.jar"
manifest="${manifest.dir}/test-gui.mf">
+ <fileset dir="${build.classes}">
+ <include name="org/apache/avalon/db/**"/>
+ <exclude name="org/apache/avalon/db/transport/cmdstream/client/**"/>
+ <exclude name="org/apache/avalon/db/driver/**"/>
+ </fileset>
+ </jar>
+
</target>
1.6 +6 -3
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBDriver.java
Index: AvalonDBDriver.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBDriver.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- AvalonDBDriver.java 2001/11/02 12:27:08 1.5
+++ AvalonDBDriver.java 2001/11/02 22:37:52 1.6
@@ -11,6 +11,7 @@
import org.apache.avalon.db.common.Version;
+import org.apache.avalon.db.util.StringUtils;
import java.sql.Driver;
import java.sql.Connection;
@@ -25,7 +26,7 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public class
AvalonDBDriver extends AbstractDriver implements Driver {
@@ -67,11 +68,13 @@
}
private String getHost(String url) {
- return null; //TODO
+ String[] str = StringUtils.split(url,":");
+ return str[4];
}
private int getPort(String url) {
- return 0; //TODO
+ String[] str = StringUtils.split(url,":");
+ return new Integer(str[5]).intValue();
}
/**
1.1
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/test/TestGUI.java
Index: TestGUI.java
===================================================================
/*
* Copyright (C) The avalon Software Foundation. All rights reserved.
*
* This software is published under the terms of the avalon Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.db.test;
import java.awt.*;
import java.util.StringTokenizer;
import java.util.Vector;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Driver;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.*;
import org.apache.avalon.db.driver.AvalonDBDriver;
/**
* Little GUI for AvalonDB Testing. Only socket connection in the
* moment. Code was mostly generated from IBM'S Dark Age :))
*
* @author Gerhard Froehlich <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
*/
public class TestGUI extends JFrame {
private JPanel ivjAvalonDBClientPane = null;
private JPanel ivjJFrameContentPane = null;
private JPanel ivjJPanel1 = null;
private JScrollPane ivjJScrollPane1 = null;
private JScrollPane ivjJScrollPane2 = null;
private JTextField ivjConnectTextField = null;
private JTextArea ivjInputTextArea = null;
private JTextArea ivjOutputTextArea = null;
private Connection con = null;
class IvjEventHandler implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (e.getSource() == TestGUI.this.getExecuteButton())
connEtoC1(e);
if (e.getSource() == TestGUI.this.getConnectButton())
connEtoC2(e);
};
};
private JButton ivjConnectButton = null;
IvjEventHandler ivjEventHandler = new IvjEventHandler();
private JButton ivjExecuteButton = null;
/**
* TestGUI constructor comment.
*/
public TestGUI() {
super();
try {
Driver driver =
(Driver)Class.forName("org.apache.avalon.db.driver.AvalonDBDriver").newInstance();
DriverManager.registerDriver(driver);
} catch (Exception e) {
handleException(e);
}
initialize();
}
/**
* TestGUI constructor comment.
* @param title java.lang.String
*/
public TestGUI(String title) {
super(title);
}
/**
* Comment
*/
public void connectButton_ActionPerformed(java.awt.event.ActionEvent
actionEvent) {
return;
}
/**
* connEtoC1:
(ExecuteButton.action.actionPerformed(java.awt.event.ActionEvent) -->
TestGUI.executeButton_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
* @param arg1 java.awt.event.ActionEvent
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void connEtoC1(java.awt.event.ActionEvent arg1) {
try {
if(con != null) {
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery(ivjInputTextArea.getText());
//TODO rs processing
} else {
ivjOutputTextArea.setText("No connection");
}
this.executeButton_ActionPerformed(arg1);
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
}
/**
* connEtoC2:
(ConnectButton.action.actionPerformed(java.awt.event.ActionEvent) -->
TestGUI.connectButton_ActionPerformed(Ljava.awt.event.ActionEvent;)V)
* @param arg1 java.awt.event.ActionEvent
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void connEtoC2(java.awt.event.ActionEvent arg1) {
try {
if(!ivjConnectTextField.getText().equals("")) {
System.out.println("Fired JDBC connect!");
con =
DriverManager.getConnection(ivjConnectTextField.getText(),null);
ivjOutputTextArea.setText("Connection established!");
} else {
ivjOutputTextArea.setText("Please insert JDBC URL!");
}
this.connectButton_ActionPerformed(arg1);
} catch (Throwable ivjExc) {
ivjOutputTextArea.setText("Connection not established!");
handleException(ivjExc);
}
}
/**
* Comment
*/
public void executeButton_ActionPerformed(java.awt.event.ActionEvent
actionEvent) {
return;
}
/**
* Return the AvalonDBClientPane property value.
* @return javax.swing.JPanel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JPanel getAvalonDBClientPane() {
if (ivjAvalonDBClientPane == null) {
try {
ivjAvalonDBClientPane = new JPanel();
ivjAvalonDBClientPane.setName("AvalonDBClientPane");
ivjAvalonDBClientPane.setLayout(null);
getAvalonDBClientPane().add(getJPanel1(),
getJPanel1().getName());
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjAvalonDBClientPane;
}
/**
* Return the JButton1 property value.
* @return javax.swing.JButton
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JButton getConnectButton() {
if (ivjConnectButton == null) {
try {
ivjConnectButton = new JButton();
ivjConnectButton.setName("ConnectButton");
ivjConnectButton.setText("Connect");
ivjConnectButton.setBounds(208, 15, 85, 25);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjConnectButton;
}
/**
* Return the JButton2 property value.
* @return javax.swing.JButton
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JButton getExecuteButton() {
if (ivjExecuteButton == null) {
try {
ivjExecuteButton = new JButton();
ivjExecuteButton.setName("ExecuteButton");
ivjExecuteButton.setText("Execute");
ivjExecuteButton.setBounds(301, 14, 85, 25);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjExecuteButton;
}
/**
* Return the JFrameContentPane property value.
* @return javax.swing.JPanel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JPanel getJFrameContentPane() {
if (ivjJFrameContentPane == null) {
try {
ivjJFrameContentPane = new JPanel();
ivjJFrameContentPane.setName("JFrameContentPane");
ivjJFrameContentPane.setLayout(new BorderLayout());
getJFrameContentPane().add(getAvalonDBClientPane(), "Center");
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJFrameContentPane;
}
/**
* Return the JPanel1 property value.
* @return javax.swing.JPanel
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JPanel getJPanel1() {
if (ivjJPanel1 == null) {
try {
ivjJPanel1 = new JPanel();
ivjJPanel1.setName("JPanel1");
ivjJPanel1.setLayout(null);
ivjJPanel1.setBounds(1, 2, 462, 326);
getJPanel1().add(getJScrollPane1(),
getJScrollPane1().getName());
getJPanel1().add(getJScrollPane2(),
getJScrollPane2().getName());
getJPanel1().add(getConnectTextField(),
getConnectTextField().getName());
getJPanel1().add(getConnectButton(),
getConnectButton().getName());
getJPanel1().add(getExecuteButton(),
getExecuteButton().getName());
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJPanel1;
}
/**
* Return the JScrollPane1 property value.
* @return javax.swing.JScrollPane
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JScrollPane getJScrollPane1() {
if (ivjJScrollPane1 == null) {
try {
ivjJScrollPane1 = new JScrollPane();
ivjJScrollPane1.setName("JScrollPane1");
ivjJScrollPane1.setBounds(4, 180, 458, 126);
getJScrollPane1().setViewportView(getOutputTextArea());
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJScrollPane1;
}
/**
* Return the JScrollPane2 property value.
* @return javax.swing.JScrollPane
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JScrollPane getJScrollPane2() {
if (ivjJScrollPane2 == null) {
try {
ivjJScrollPane2 = new JScrollPane();
ivjJScrollPane2.setName("JScrollPane2");
ivjJScrollPane2.setBounds(5, 44, 457, 130);
getJScrollPane2().setViewportView(getInputTextArea());
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjJScrollPane2;
}
/**
* Called whenever the part throws an exception.
* @param exception java.lang.Throwable
*/
private void handleException(Throwable exception) {
/* Uncomment the following lines to print uncaught exceptions to stdout */
System.out.println("--------- UNCAUGHT EXCEPTION ---------");
exception.printStackTrace(System.out);
}
/**
* Initializes connections
* @exception java.lang.Exception The exception description.
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void initConnections() throws Exception {
// user code begin {1}
// user code end
getExecuteButton().addActionListener(ivjEventHandler);
getConnectButton().addActionListener(ivjEventHandler);
}
/**
* Initialize the class.
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void initialize() {
try {
// user code begin {1}
// user code end
setName("TestGUI");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setResizable(false);
setSize(469, 370);
setTitle("TestGUI");
setContentPane(getJFrameContentPane());
initConnections();
} catch (Throwable ivjExc) {
handleException(ivjExc);
}
// user code begin {2}
// user code end
}
/**
* Starts the application.
* @param args an array of command-line arguments
*/
public static void main(String[] args) {
try {
/* Set native look and feel */
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
/* Create the frame */
TestGUI aAvalonDBClient = new TestGUI();
/* Add a windowListener for the windowClosedEvent */
aAvalonDBClient.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosed(java.awt.event.WindowEvent e) {
System.exit(0);
};
});
aAvalonDBClient.setVisible(true);
} catch (Throwable exception) {
System.err.println("Exception occurred in main() of TestGUI");
exception.printStackTrace(System.out);
}
}
/**
* Return the JTextField1 property value.
* @return javax.swing.JTextField
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JTextField getConnectTextField() {
if (ivjConnectTextField == null) {
try {
ivjConnectTextField = new JTextField();
ivjConnectTextField.setName("ConnectTextField");
ivjConnectTextField.setBounds(6, 19, 186, 20);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjConnectTextField;
}
/**
* Return the JTextArea1 property value.
* @return javax.swing.JTextArea
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JTextArea getInputTextArea() {
if (ivjInputTextArea == null) {
try {
ivjInputTextArea = new JTextArea();
ivjInputTextArea.setName("InputTextArea");
ivjInputTextArea.setBounds(-12, 0, 463, 127);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjInputTextArea;
}
/**
* Return the JTextArea2 property value.
* @return javax.swing.JTextArea
*/
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JTextArea getOutputTextArea() {
if (ivjOutputTextArea == null) {
try {
ivjOutputTextArea = new JTextArea();
ivjOutputTextArea.setName("OutputTextArea");
ivjOutputTextArea.setBounds(0, 0, 425, 123);
ivjOutputTextArea.setEditable(false);
// user code begin {1}
// user code end
} catch (Throwable ivjExc) {
// user code begin {2}
// user code end
handleException(ivjExc);
}
}
return ivjOutputTextArea;
}
}
1.1
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/utils/StringUtils.java
Index: StringUtils.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.avalon.db.util;
/**
* A collection of <code>String</code> handling utility methods.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
* @version CVS $Revision: 1.1 $ $Date: 2001/11/02 22:37:52 $
*/
public class StringUtils {
/**
* Split a string as an array using whitespace as separator
*
* @param line The string to be split
* @return An array of whitespace-separated tokens
*/
public static String[] split(String line) {
return split(line, " \t\n\r");
}
/**
* Split a string as an array using a given set of separators
*
* @param line The string to be split
* @param delimiter A string containing token separators
* @return An array of token
*/
public static String[] split(String line, String delimiter) {
Tokenizer tokenizer = new Tokenizer(line, delimiter);
int tokenCount = tokenizer.countTokens();
String[] result = new String[tokenCount];
for (int i = 0; i < tokenCount; i++) {
result[i] = tokenizer.nextToken();
}
return result;
}
/**
* Tests whether a given character is alphabetic, numeric or
* underscore
*
* @param c The character to be tested
* @return whether the given character is alphameric or not
*/
public static boolean isAlphaNumeric(char c) {
return c == '_' ||
(c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9');
}
/**
* Counts the occurrence of the given char in the string.
*
* @param str The string to be tested
* @param c the char to be counted
* @return the occurrence of the character in the string.
*/
public static int count(String str, char c) {
int index = 0;
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == c) index++;
}
return index;
}
/**
* Matches two strings.
*
* @param a The first string
* @param b The second string
* @return the index where the two strings stop matching starting from 0
*/
public static int matchStrings(String a, String b) {
int i;
char[] ca = a.toCharArray();
char[] cb = b.toCharArray();
for (i = 0; (i < ca.length) || (i < cb.length); i++) {
if (ca[i] != cb[i]) break;
}
return i;
}
/**
* Replaces tokens in input with Value present in System.getProperty
*/
public static String replaceToken(String s) {
int startToken = s.indexOf("${");
int endToken = s.indexOf("}",startToken);
String token = s.substring(startToken+2,endToken);
StringBuffer value = new StringBuffer();
value.append(s.substring(0,startToken));
value.append(System.getProperty(token));
value.append(s.substring(endToken+1));
return value.toString();
}
}
1.1
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/utils/Tokenizer.java
Index: Tokenizer.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.avalon.db.util;
import java.util.Enumeration;
import java.util.NoSuchElementException;
/**
* Replacement for StringTokenizer in java.util, beacuse of bug in the
* Sun's implementation.
*
* @author <A HREF="mailto:[EMAIL PROTECTED]">Peter Moravek</A>
*/
public class Tokenizer implements Enumeration {
/**
* Constructs a string tokenizer for the specified string. All characters
* in the delim argument are the delimiters for separating tokens.
* If the returnTokens flag is true, then the delimiter characters are
* also returned as tokens. Each delimiter is returned as a string of
* length one. If the flag is false, the delimiter characters are skipped
* and only serve as separators between tokens.
*
* @param str a string to be parsed
* @param delim the delimiters
* @param returnTokens flag indicating whether to return the delimiters
* as tokens
*/
public Tokenizer(String str, String delim, boolean returnTokens) {
this.str = str;
this.delim = delim;
this.returnTokens = returnTokens;
max = str.length();
}
/**
* Constructs a string tokenizer for the specified string. The characters
* in the delim argument are the delimiters for separating tokens.
* Delimiter characters themselves will not be treated as tokens.
*
* @param str a string to be parsed
* @param delim the delimiters
*/
public Tokenizer(String str, String delim) {
this(str, delim, false);
}
/**
* Constructs a string tokenizer for the specified string. The character
* in the delim argument is the delimiter for separating tokens.
* Delimiter character themselves will not be treated as token.
*
* @param str a string to be parsed
* @param delim the delimiter
*/
public Tokenizer(String str, char delim) {
this(str, String.valueOf(delim), false);
}
/**
* Constructs a string tokenizer for the specified string. The tokenizer
* uses the default delimiter set, which is " \t\n\r\f": the space
* character, the tab character, the newline character, the carriage-return
* character, and the form-feed character. Delimiter characters themselves
* will not be treated as tokens.
*
* @param str a string to be parsed
*/
public Tokenizer(String str) {
this(str, DEFAULT_DELIMITERS, false);
}
/**
* Tests if there are more tokens available from this tokenizer's string.
* If this method returns true, then a subsequent call to nextToken with
* no argument will successfully return a token.
*
* @return true if and only if there is at least one token in the string
* after the current position; false otherwise.
*/
public boolean hasMoreTokens() {
return ((current < max) ? (true) :
(((current == max) && (max == 0
|| (returnTokens && delim.indexOf(str.charAt(previous)) >= 0)))));
}
/**
* Returns the next token from this string tokenizer.
*
* @return the next token from this string tokenizer
*
* @exception NoSuchElementException if there are no more tokens in this
* tokenizer's string
*/
public String nextToken() throws NoSuchElementException {
if (current == max
&& (max == 0
|| (returnTokens && delim.indexOf(str.charAt(previous)) >= 0))) {
current++;
return new String();
}
if (current >= max)
throw new NoSuchElementException();
int start = current;
String result = null;
if (delim.indexOf(str.charAt(start)) >= 0) {
if (previous == -1 || (returnTokens && previous != current
&& delim.indexOf(str.charAt(previous)) >= 0)) {
result = new String();
}
else if (returnTokens)
result = str.substring(start, ++current);
if (!returnTokens)
current++;
}
previous = start;
start = current;
if (result == null)
while (current < max && delim.indexOf(str.charAt(current)) < 0)
current++;
return result == null ? str.substring(start, current) : result;
}
/**
* Returns the next token in this string tokenizer's string. First, the
* set of characters considered to be delimiters by this Tokenizer
* object is changed to be the characters in the string delim.
* Then the next token in the string after the current position is
* returned. The current position is advanced beyond the recognized token.
* The new delimiter set remains the default after this call.
*
* @param delim the new delimiters
*
* @return the next token, after switching to the new delimiter set
*
* @exception NoSuchElementException if there are no more tokens in this
* tokenizer's string.
*/
public String nextToken(String delim) throws NoSuchElementException {
this.delim = delim;
return nextToken();
}
/**
* Returns the same value as the hasMoreTokens method. It exists so that
* this class can implement the Enumeration interface.
*
* @return true if there are more tokens; false otherwise.
*/
public boolean hasMoreElements() {
return hasMoreTokens();
}
/**
* Returns the same value as the nextToken method, except that its
* declared return value is Object rather than String. It exists so that
* this class can implement the Enumeration interface.
*
* @return the next token in the string
*
* @exception NoSuchElementException if there are no more tokens in this
* tokenizer's string
*/
public Object nextElement() {
return nextToken();
}
/**
* Calculates the number of times that this tokenizer's nextToken method
* can be called before it generates an exception. The current position
* is not advanced.
*
* @return the number of tokens remaining in the string using the
* current delimiter set
*/
public int countTokens() {
int curr = current;
int count = 0;
for (int i = curr; i < max; i++) {
if (delim.indexOf(str.charAt(i)) >= 0)
count++;
curr++;
}
return count + (returnTokens ? count : 0) + 1;
}
/**
* Resets this tokenizer's state so the tokenizing starts from the begin.
*/
public void reset() {
previous = -1;
current = 0;
}
/**
* Constructs a string tokenizer for the specified string. All characters
* in the delim argument are the delimiters for separating tokens.
* If the returnTokens flag is true, then the delimiter characters are
* also returned as tokens. Each delimiter is returned as a string of
* length one. If the flag is false, the delimiter characters are skipped
* and only serve as separators between tokens. Then tokenizes the str
* and return an String[] array with tokens.
*
* @param str a string to be parsed
* @param delim the delimiters
* @param returnTokens flag indicating whether to return the delimiters
* as tokens
*
* @return array with tokens
*/
public static String[] tokenize(String str, String delim,
boolean returnTokens) {
Tokenizer tokenizer = new Tokenizer(str, delim, returnTokens);
String[] tokens = new String[tokenizer.countTokens()];
for (int i = 0; i < tokens.length; i++)
tokens[i] = tokenizer.nextToken();
return tokens;
}
/**
* Default delimiters "\t\n\r\f":
* the space character, the tab character, the newline character,
* the carriage-return character, and the form-feed character.
*/
public static final String DEFAULT_DELIMITERS = " \t\n\r\f";
/**
* String to tokenize.
*/
private String str = null;
/**
* Delimiters.
*/
private String delim = null;
/**
* Flag indicating whether to return the delimiters as tokens.
*/
private boolean returnTokens = false;
/**
* Previous token start.
*/
private int previous = -1;
/**
* Current position in str string.
*/
private int current = 0;
/**
* Maximal position in str string.
*/
private int max = 0;
}
1.1 jakarta-avalon-cornerstone/apps/db/src/manifest/test-gui.mf
Index: test-gui.mf
===================================================================
Manifest-Version: 1.0
Main-Class: org.apache.avalon.db.test.TestGUI
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>