Class ConnectStringParser

java.lang.Object
org.apache.calcite.avatica.ConnectStringParser

public class ConnectStringParser extends Object
ConnectStringParser is a utility class that parses or creates a JDBC connect string according to the OLE DB Connection String Syntax.

This code was adapted from Mondrian's mondrian.olap.Util class. The primary differences between this and its Mondrian progenitor are:

  • use of regular Properties for compatibility with the JDBC API (replaces Mondrian's use of its own order-preserving and case-insensitive PropertyList)
  • ability to pass to parse(java.lang.String) a pre-existing Properties object into which properties are to be parsed, possibly overriding prior values
  • use of SQLExceptions rather than unchecked RuntimeExceptions
  • static members for parsing and creating connect strings

ConnectStringParser has a private constructor. Callers use the static members:

parse(String)
Parses the connect string into a new Properties object.
parse(String, Properties)
Parses the connect string into an existing Properties object.
getParamString(Properties)
Returns a param string, quoted and escaped as needed, to represent the supplied name-value pairs.
  • Method Details

    • parse

      public static Properties parse(String s) throws SQLException
      Parses the connect string into a new Properties object.
      Parameters:
      s - connect string to parse
      Returns:
      properties object with parsed params
      Throws:
      SQLException - error parsing name-value pairs
    • parse

      public static Properties parse(String s, Properties props) throws SQLException
      Parses the connect string into an existing Properties object.
      Parameters:
      s - connect string to parse
      props - optional properties object, may be null
      Returns:
      properties object with parsed params; if an input props was supplied, any duplicate properties will have been replaced by those from the connect string.
      Throws:
      SQLException - error parsing name-value pairs
    • getParamString

      public static String getParamString(Properties props)
      Returns a param string, quoted and escaped as needed, to represent the supplied name-value pairs.
      Parameters:
      props - name-value pairs
      Returns:
      param string, never null
    • toMap

      public static Map<String,String> toMap(Properties properties)
      Converts a Properties object to a Map<String, String>.

      This is necessary because Properties is a dinosaur class. It ought to extend Map<String,String>, but instead extends Hashtable<Object,Object>.

      Typical usage, to iterate over a Properties:

      Properties properties;
      for (Map.Entry<String, String> entry = Util.toMap(properties).entrySet()) {
      println("key=" + entry.getKey() + ", value=" + entry.getValue());
      }