xmlBlaster 1.6.2 client API

org.xmlBlaster.util
Class StringPairTokenizer

java.lang.Object
  extended byorg.xmlBlaster.util.StringPairTokenizer

public class StringPairTokenizer
extends java.lang.Object

StringPairTokenizer is a utility class used to parse a string giving back a map containing pairs of key/value strings.
The method parseLine respects quoted '"' tokens and ignores the separator inside the quotes.

Author:
Michele Laghi, Marcel Ruff

Field Summary
static char DEFAULT_INNER_SEPARATOR
           
static char DEFAULT_QUOTE_CHARACTER
           
static char DEFAULT_SEPARATOR
           
static char ESCAPE_CHARACTER
           
 
Constructor Summary
StringPairTokenizer()
           
 
Method Summary
static java.lang.String arrayToCSV(java.lang.String[] strs, java.lang.String sep)
           
static java.lang.String dumpMap(java.util.Map map)
          Dumps the given map to a human readable string.
static void main(java.lang.String[] args)
           
static java.lang.String[] parseLine(java.lang.String nextLine)
           
static java.lang.String[] parseLine(java.lang.String[] nextLines, char separator, char quotechar, boolean trimEmpty, boolean preserveInsideQuoteChar)
          Split string to tokens and respect quotes.
static java.util.Map parseLine(java.lang.String[] nextLines, char separator, char quotechar, char innerSeparator, boolean trimEmpty, boolean wantClientProperties, boolean trimValue)
          Split string to tokens and respect quotes, then parse key/values into the returned map.
static java.lang.String[] parseLine(java.lang.String nextLine, char separator)
           
static java.lang.String[] parseLine(java.lang.String nextLine, char separator, char quotechar, boolean trimEmpty)
           
static java.lang.String[] parseLine(java.lang.String nextLine, char separator, char quotechar, boolean trimEmpty, boolean preserveInsideQuoteChar)
           
static java.util.Map parseLine(java.lang.String nextLine, char separator, char quotechar, char innerSeparator, boolean trimEmpty, boolean wantClientProperties)
           
static java.util.Map parseLineToProperties(java.lang.String nextLine)
          Parsing for example >org.xmlBlaster.protocol.soap.SoapDriver,"classpath=xerces.jar:soap.jar,all",MAXSIZE=100,a=10<.
static java.util.Map parseToStringClientPropertyPairs(java.lang.String rawString, java.lang.String outerToken, java.lang.String innerToken)
           
static java.util.Map parseToStringStringPairs(java.lang.String rawString, java.lang.String outerToken, java.lang.String innerToken)
           
static java.lang.String[] toArray(java.lang.String str, java.lang.String separator)
          Convert a separator based string to an array of strings.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_QUOTE_CHARACTER

public static final char DEFAULT_QUOTE_CHARACTER
See Also:
Constant Field Values

ESCAPE_CHARACTER

public static final char ESCAPE_CHARACTER
See Also:
Constant Field Values

DEFAULT_SEPARATOR

public static final char DEFAULT_SEPARATOR
See Also:
Constant Field Values

DEFAULT_INNER_SEPARATOR

public static final char DEFAULT_INNER_SEPARATOR
See Also:
Constant Field Values
Constructor Detail

StringPairTokenizer

public StringPairTokenizer()
Method Detail

parseLine

public static java.lang.String[] parseLine(java.lang.String nextLine)
See Also:
#parseLine(String[] nextLines, char separator, char quotechar, boolean trimEmpty)

parseLine

public static java.lang.String[] parseLine(java.lang.String nextLine,
                                           char separator)
See Also:
#parseLine(String[] nextLines, char separator, char quotechar, boolean trimEmpty)

parseLine

public static java.lang.String[] parseLine(java.lang.String nextLine,
                                           char separator,
                                           char quotechar,
                                           boolean trimEmpty)
See Also:
parseLine(String[] nextLines, char separator, char quotechar, boolean trimEmpty, boolean)

parseLine

public static java.lang.String[] parseLine(java.lang.String nextLine,
                                           char separator,
                                           char quotechar,
                                           boolean trimEmpty,
                                           boolean preserveInsideQuoteChar)
See Also:
parseLine(String[] nextLines, char separator, char quotechar, boolean trimEmpty, boolean)

parseLine

public static java.lang.String[] parseLine(java.lang.String[] nextLines,
                                           char separator,
                                           char quotechar,
                                           boolean trimEmpty,
                                           boolean preserveInsideQuoteChar)
Split string to tokens and respect quotes.
 /node/heron/client/\"joe/the/great\"

  'node'
  'heron'
  'client'
  'joe/the/great'
Thanks to http://opencsv.sourceforge.net/ (under Apache license)

Parameters:
nextLines - An array of lines, followup lines will only be parsed if an open quotechar exists
separator - Defaults to StringPairTokenizer.DEFAULT_SEPARATOR=','
quotechar - Defaults to StringPairTokenizer.DEFAULT_QUOTE_CHARACTER='"'
trimEmpty - if true removes silently empy tokens
preserveInsideQuoteChar - true: Preserve the inside quotes of "bla, bla, "blu blu", bli"
Returns:
Never null, if nextLines is null or empty we return an empty array

parseLine

public static java.util.Map parseLine(java.lang.String[] nextLines,
                                      char separator,
                                      char quotechar,
                                      char innerSeparator,
                                      boolean trimEmpty,
                                      boolean wantClientProperties,
                                      boolean trimValue)
Split string to tokens and respect quotes, then parse key/values into the returned map. If a value is missing then a null object will be put into the map as value. The map returns pairs 'String,ClientProperty' if wantClientProperties is true, otherwise it returns 'String,String' pairs.

Parameters:
nextLines - e.g. String[] nextLines = { "org.xmlBlaster.protocol.soap.SoapDriver,\"classpath=xerces.jar:soap.jar,all\",MAXSIZE=100,a=10,\"b=", "20\",c=30" }; Followup lines will only be parsed if an open quotechar exists
innerSeparator - is for example StringPairTokenizer.DEFAULT_INNER_SEPARATOR "=" or " "
wantClientProperties - if set to true returns pairs 'String,ClientProperty', returns 'String,String' pairs otherwise.
trimValue - If true the value is trimmed (removed white spaces in front and back)
Returns:
Never null,
 classpath=xerces.jar:soap.jar,all
 org.xmlBlaster.protocol.soap.SoapDriver=null
 MAXSIZE=100
 a=10
 c=30
 b=20
 
See Also:
#parseLine(String[] nextLines, char separator, char quotechar, boolean trimEmpty)

parseLine

public static java.util.Map parseLine(java.lang.String nextLine,
                                      char separator,
                                      char quotechar,
                                      char innerSeparator,
                                      boolean trimEmpty,
                                      boolean wantClientProperties)
See Also:
parseLine(String[] nextLines, char separator, char quotechar, char innerSeparator, boolean trimEmpty, boolean wantClientProperties, boolean trimEmpty)

parseLineToProperties

public static java.util.Map parseLineToProperties(java.lang.String nextLine)
Parsing for example >org.xmlBlaster.protocol.soap.SoapDriver,"classpath=xerces.jar:soap.jar,all",MAXSIZE=100,a=10<.

Using default separator chars and quote chars: return parseLine(nextLines, DEFAULT_SEPARATOR, DEFAULT_QUOTE_CHARACTER, DEFAULT_INNER_SEPARATOR, true, false, false);

See Also:
parseLine(String[] nextLines, char separator, char quotechar, char innerSeparator, boolean trimEmpty, boolean wantClientProperties, boolean trimEmpty)

toArray

public static final java.lang.String[] toArray(java.lang.String str,
                                               java.lang.String separator)
Convert a separator based string to an array of strings.

Example:
NameList=Josua,David,Ken,Abel
Will return each name separately in the array.

Parameters:
separator - The separator, typically ","
Returns:
The String array for the given key, the elements are trimmed (no leading/following white spaces), is never null

dumpMap

public static java.lang.String dumpMap(java.util.Map map)
Dumps the given map to a human readable string.

Parameters:
map -
Returns:
e.g. "key1=15,name=joe"

parseToStringClientPropertyPairs

public static java.util.Map parseToStringClientPropertyPairs(java.lang.String rawString,
                                                             java.lang.String outerToken,
                                                             java.lang.String innerToken)
Parameters:
rawString - e.g. "org.xmlBlaster.protocol.soap.SoapDriver,classpath=xerces.jar:soap.jar,MAXSIZE=100"
outerToken - is for example ";" or ","

parseToStringStringPairs

public static java.util.Map parseToStringStringPairs(java.lang.String rawString,
                                                     java.lang.String outerToken,
                                                     java.lang.String innerToken)
Parameters:
rawString - e.g. "org.xmlBlaster.protocol.soap.SoapDriver,classpath=xerces.jar:soap.jar,MAXSIZE=100"
outerToken - is for example ";" or ","

arrayToCSV

public static java.lang.String arrayToCSV(java.lang.String[] strs,
                                          java.lang.String sep)

main

public static void main(java.lang.String[] args)

xmlBlaster 1.6.2 client API

Copyright © 1999-2007 The xmlBlaster.org contributers.