home *** CD-ROM | disk | FTP | other *** search
Java Source | 1998-05-08 | 2.8 KB | 81 lines |
- /*
- * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
- *
- * This SOURCE CODE FILE, which has been provided by Borland as part
- * of a Borland product for use ONLY by licensed users of the product,
- * includes CONFIDENTIAL and PROPRIETARY information of Borland.
- *
- * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS
- * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
- * THE PRODUCT.
- *
- * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
- * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
- * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
- * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
- * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
- * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
- * CODE FILE.
- */
- package borland.samples.apps.chess.client;
- import java.io.*;
- import java.util.Vector;
-
- /**re-invent the wheel: Concatenate an array of Strings in such a way that they can hold any data
- * and be parsed back into the array of strings they were created from
- * Simplifies passing multiparameter messages between client and server
- */
- public class PersistString {
- static public String concat(String[] data ) {
- String retVal = "";
- for (int i=0;i < data.length && data[i] != null ;i++)
- retVal = retVal + i + "\"" + PersistString.padQuotes(data[i])+ "\"" ;
- return retVal;
- }
-
- static public String [] parse(String infoData) {
- Vector output = new Vector(10);
- StringReader stream = new StringReader(infoData);
- //StringBufferInputStream stream = new StringBufferInputStream(infoData);
- //StreamTokenizer st = new StreamTokenizer(new BufferedInputStream(stream, 1000));
- StreamTokenizer st = new StreamTokenizer(stream);
-
- try {
- st.nextToken();
- while(true) {
- String data = null;
- while (st.nextToken() == '"') {
- if (data == null)
- data = st.sval;
- else
- data = data + "\"" + st.sval;
- }
- output.addElement(data);
- if (st.ttype == StreamTokenizer.TT_EOF)
- break;
- }
- }
- catch (Exception e) {
- System.out.println("PersistStream error " + e);
- }
- String [] outputArray = new String [output.size()];
- for (int i=0;i<output.size();i++)
- outputArray[i] = (String) output.elementAt(i);
- return outputArray;
- }
-
- static String padQuotes(String data) {
- int index = 0 ;
- int oldIndex = 0;
- while (index >= 0) {
- index = data.indexOf('\"',oldIndex);
- if (index > 0) {
- data = data.substring(0,index) + "\"" + data.substring(index );
- //System.out.println ("Found a quote in the data " + data);
- oldIndex = index + 2;
- }
- }
- return data;
- }
- }
-