public SocketFactory()

in jdbc/sqlserver/src/main/java/com/google/cloud/sql/sqlserver/SocketFactory.java [52:78]


  public SocketFactory(String socketFactoryConstructorArg) throws UnsupportedEncodingException {
    List<String> s = Splitter.on('?').splitToList(socketFactoryConstructorArg);
    final String instanceOrDomainName = s.get(0);
    if (CloudSqlInstanceName.isValidInstanceName(instanceOrDomainName)) {
      this.props.setProperty(ConnectionConfig.CLOUD_SQL_INSTANCE_PROPERTY, instanceOrDomainName);
    } else {
      domainName = instanceOrDomainName;
    }
    if (s.size() == 2 && s.get(1).length() > 0) {
      Iterable<String> queryParams = Splitter.on('&').split(s.get(1));
      for (String param : queryParams) {
        List<String> splitParam = Splitter.on('=').splitToList(param);
        if (splitParam.size() != 2
            || splitParam.get(0).length() == 0
            || splitParam.get(1).length() == 0) {
          throw new IllegalArgumentException(
              String.format("Malformed query param in socketFactoryConstructorArg : %s", param));
        }
        this.props.setProperty(
            URLDecoder.decode(splitParam.get(0), "utf-8"),
            URLDecoder.decode(splitParam.get(1), "utf-8"));
      }
    } else if (s.size() > 2) {
      throw new IllegalArgumentException(
          "Only one query string allowed in socketFactoryConstructorArg");
    }
  }