annotate src/main/java/org/monetdb/mcl/net/Target.java @ 791:4de810c22328 monetdbs

Refactor
author Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
date Fri, 01 Dec 2023 14:18:01 +0100 (17 months ago)
parents 547eca89fc5e
children 9dea0795a926
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
1 package org.monetdb.mcl.net;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
2
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
3 import java.util.Calendar;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
4 import java.util.Properties;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
5 import java.util.regex.Pattern;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
6
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
7 public class Target {
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
8 private boolean tls = false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
9 private String host = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
10 private int port = -1;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
11 private String database = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
12 private String tableschema = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
13 private String table = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
14 private String sock = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
15 private String sockdir = "/tmp";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
16 private String cert = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
17 private String certhash = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
18 private String clientkey = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
19 private String clientcert = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
20 private String user = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
21 private String password = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
22 private String language = "sql";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
23 private boolean autocommit = true;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
24 private String schema = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
25 private int timezone;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
26 private String binary = "on";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
27 private int replysize = 200;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
28 private String hash = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
29 private boolean debug = false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
30 private String logfile = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
31
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
32 private boolean userWasSet = false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
33 private boolean passwordWasSet = false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
34 protected static final Target defaults = new Target();
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
35
790
547eca89fc5e Adjustments after applying changes to libmapi
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 789
diff changeset
36 private static Pattern namePattern = Pattern.compile("^[a-zzA-Z_][-a-zA-Z0-9_.]*$");
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
37 private static Pattern hashPattern = Pattern.compile("^sha256:[0-9a-fA-F:]*$");
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
38
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
39 public Target() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
40 this.timezone = (int)Parameter.TIMEZONE.getDefault();
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
41 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
42
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
43 public void barrier() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
44 if (userWasSet && !passwordWasSet)
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
45 password = "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
46 userWasSet = false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
47 passwordWasSet = false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
48 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
49
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
50 public static String packHost(String host) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
51 switch (host) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
52 case "localhost":
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
53 return "localhost.";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
54 case "":
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
55 return "localhost";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
56 default:
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
57 return host;
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
58 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
59 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
60
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
61 public void setString(String key, String value) throws ValidationError {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
62 Parameter parm = Parameter.forName(key);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
63 if (parm != null)
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
64 setString(parm, value);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
65 else if (!Parameter.isIgnored(key))
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
66 throw new ValidationError(key, "unknown parameter");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
67 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
68
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
69 public void setString(Parameter parm, String value) throws ValidationError {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
70 if (value == null)
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
71 throw new NullPointerException("'value' must not be null");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
72 assign(parm, parm.type.parse(parm.name, value));
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
73 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
74
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
75 public void clear(Parameter parm) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
76 assign(parm, parm.getDefault());
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
77 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
78
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
79 private void assign(Parameter parm, Object value) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
80 switch (parm) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
81 case TLS: setTls((boolean)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
82 case HOST: setHost((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
83 case PORT: setPort((int)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
84 case DATABASE: setDatabase((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
85 case TABLESCHEMA: setTableschema((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
86 case TABLE: setTable((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
87 case SOCK: setSock((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
88 case SOCKDIR: setSockdir((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
89 case CERT: setCert((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
90 case CERTHASH: setCerthash((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
91 case CLIENTKEY: setClientkey((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
92 case CLIENTCERT: setClientcert((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
93 case USER: setUser((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
94 case PASSWORD: setPassword((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
95 case LANGUAGE: setLanguage((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
96 case AUTOCOMMIT: setAutocommit((boolean)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
97 case SCHEMA: setSchema((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
98 case TIMEZONE: setTimezone((int)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
99 case BINARY: setBinary((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
100 case REPLYSIZE: setReplysize((int)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
101 case FETCHSIZE: setReplysize((int)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
102 case HASH: setHash((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
103 case DEBUG: setDebug((boolean)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
104 case LOGFILE: setLogfile((String)value); break;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
105 default:
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
106 throw new IllegalStateException("unreachable -- missing case");
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
107 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
108 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
109
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
110 public String getString(Parameter parm) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
111 Object value = getObject(parm);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
112 return parm.type.format(value);
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
113 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
114
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
115 public Object getObject(Parameter parm) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
116 switch (parm) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
117 case TLS: return tls;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
118 case HOST: return host;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
119 case PORT: return port;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
120 case DATABASE: return database;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
121 case TABLESCHEMA: return tableschema;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
122 case TABLE: return table;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
123 case SOCK: return sock;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
124 case SOCKDIR: return sockdir;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
125 case CERT: return cert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
126 case CERTHASH: return certhash;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
127 case CLIENTKEY: return clientkey;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
128 case CLIENTCERT: return clientcert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
129 case USER: return user;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
130 case PASSWORD: return password;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
131 case LANGUAGE: return language;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
132 case AUTOCOMMIT: return autocommit;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
133 case SCHEMA: return schema;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
134 case TIMEZONE: return timezone;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
135 case BINARY: return binary;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
136 case REPLYSIZE: return replysize;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
137 case FETCHSIZE: return replysize;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
138 case HASH: return hash;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
139 case DEBUG: return debug;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
140 case LOGFILE: return logfile;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
141 default:
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
142 throw new IllegalStateException("unreachable -- missing case");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
143 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
144 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
145
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
146 public static String unpackHost(String host) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
147 switch (host) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
148 case "localhost.":
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
149 return "localhost";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
150 case "localhost":
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
151 return "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
152 default:
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
153 return host;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
154 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
155 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
156
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
157 public boolean isTls() {
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
158 return tls;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
159 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
160
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
161 public void setTls(boolean tls) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
162 this.tls = tls;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
163 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
164
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
165 public String getHost() {
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
166 return host;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
167 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
168
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
169 public void setHost(String host) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
170 this.host = host;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
171 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
172
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
173 public int getPort() {
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
174 return port;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
175 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
176
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
177 public void setPort(int port) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
178 this.port = port;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
179 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
180
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
181 public String getDatabase() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
182 return database;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
183 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
184
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
185 public void setDatabase(String database) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
186 this.database = database;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
187 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
188
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
189 public String getTableschema() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
190 return tableschema;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
191 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
192
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
193 public void setTableschema(String tableschema) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
194 this.tableschema = tableschema;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
195 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
196
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
197 public String getTable() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
198 return table;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
199 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
200
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
201 public void setTable(String table) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
202 this.table = table;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
203 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
204
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
205 public String getSock() {
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
206 return sock;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
207 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
208
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
209 public void setSock(String sock) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
210 this.sock = sock;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
211 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
212
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
213 public String getSockdir() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
214 return sockdir;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
215 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
216
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
217 public void setSockdir(String sockdir) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
218 this.sockdir = sockdir;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
219 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
220
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
221 public String getCert() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
222 return cert;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
223 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
224
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
225 public void setCert(String cert) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
226 this.cert = cert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
227 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
228
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
229 public String getCerthash() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
230 return certhash;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
231 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
232
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
233 public void setCerthash(String certhash) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
234 this.certhash = certhash;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
235 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
236
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
237 public String getClientkey() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
238 return clientkey;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
239 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
240
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
241 public void setClientkey(String clientkey) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
242 this.clientkey = clientkey;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
243 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
244
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
245 public String getClientcert() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
246 return clientcert;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
247 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
248
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
249 public void setClientcert(String clientcert) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
250 this.clientcert = clientcert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
251 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
252
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
253 public String getUser() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
254 return user;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
255 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
256
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
257 public void setUser(String user) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
258 this.user = user;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
259 this.userWasSet = true;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
260 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
261
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
262 public String getPassword() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
263 return password;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
264 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
265
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
266 public void setPassword(String password) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
267 this.password = password;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
268 this.passwordWasSet = true;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
269 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
270
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
271 public String getLanguage() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
272 return language;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
273 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
274
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
275 public void setLanguage(String language) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
276 this.language = language;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
277 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
278
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
279 public boolean isAutocommit() {
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
280 return autocommit;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
281 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
282
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
283 public void setAutocommit(boolean autocommit) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
284 this.autocommit = autocommit;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
285 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
286
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
287 public String getSchema() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
288 return schema;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
289 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
290
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
291 public void setSchema(String schema) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
292 this.schema = schema;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
293 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
294
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
295 public int getTimezone() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
296 return timezone;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
297 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
298
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
299 public void setTimezone(int timezone) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
300 this.timezone = timezone;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
301 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
302
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
303 public String getBinary() {
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
304 return binary;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
305 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
306
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
307 public void setBinary(String binary) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
308 this.binary = binary;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
309 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
310
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
311 public int getReplysize() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
312 return replysize;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
313 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
314
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
315 public void setReplysize(int replysize) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
316 this.replysize = replysize;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
317 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
318
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
319 public String getHash() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
320 return hash;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
321 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
322
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
323 public void setHash(String hash) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
324 this.hash = hash;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
325 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
326
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
327 public boolean isDebug() {
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
328 return debug;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
329 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
330
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
331 public void setDebug(boolean debug) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
332 this.debug = debug;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
333 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
334
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
335 public String getLogfile() {
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
336 return logfile;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
337 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
338
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
339 public void setLogfile(String logfile) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
340 this.logfile = logfile;
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
341 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
342
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
343 public Validated validate() throws ValidationError {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
344 return new Validated();
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
345 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
346
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
347 public class Validated {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
348
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
349 private final int nbinary;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
350
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
351 Validated() throws ValidationError {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
352
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
353 // 1. The parameters have the types listed in the table in [Section
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
354 // Parameters](#parameters).
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
355
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
356 String binaryString = binary;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
357 int binaryInt;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
358 try {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
359 binaryInt = (int) ParameterType.Int.parse(Parameter.BINARY.name, binaryString);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
360 } catch (ValidationError e) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
361 try {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
362 boolean b = (boolean) ParameterType.Bool.parse(Parameter.BINARY.name, binaryString);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
363 binaryInt = b ? 65535 : 0;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
364 } catch (ValidationError ee) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
365 throw new ValidationError("binary= must be either a number or true/yes/on/false/no/off");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
366 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
367 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
368 if (binaryInt < 0)
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
369 throw new ValidationError("binary= cannot be negative");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
370 nbinary = binaryInt;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
371
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
372
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
373 // 2. At least one of **sock** and **host** must be empty.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
374 if (!sock.isEmpty() && !host.isEmpty())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
375 throw new ValidationError("sock=" + sock + " cannot be combined with host=" + host);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
376
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
377 // 3. The string parameter **binary** must either parse as a boolean or as a
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
378 // non-negative integer.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
379 //
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
380 // (checked above)
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
381
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
382 // 4. If **sock** is not empty, **tls** must be 'off'.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
383 if (!sock.isEmpty() && tls) throw new ValidationError("monetdbs:// cannot be combined with sock=");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
384
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
385 // 5. If **certhash** is not empty, it must be of the form `{sha256}hexdigits`
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
386 // where hexdigits is a non-empty sequence of 0-9, a-f, A-F and colons.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
387 // TODO
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
388 if (!certhash.isEmpty()) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
389 if (!certhash.toLowerCase().startsWith("sha256:"))
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
390 throw new ValidationError("certificate hash must start with 'sha256:'");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
391 if (!hashPattern.matcher(certhash).matches())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
392 throw new ValidationError("invalid certificate hash");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
393 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
394
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
395 // 6. If **tls** is 'off', **cert** and **certhash** must be 'off' as well.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
396 if (!tls) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
397 if (!cert.isEmpty() || !certhash.isEmpty())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
398 throw new ValidationError("cert= and certhash= are only allowed in combination with monetdbs://");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
399 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
400
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
401 // 7. Parameters **database**, **tableschema** and **table** must consist only of
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
402 // upper- and lowercase letters, digits, periods, dashes and underscores. They must not
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
403 // start with a dash.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
404 // If **table** is not empty, **tableschema** must also not be empty.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
405 // If **tableschema** is not empty, **database** must also not be empty.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
406 if (database.isEmpty() && !tableschema.isEmpty())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
407 throw new ValidationError("table schema cannot be set without database");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
408 if (tableschema.isEmpty() && !table.isEmpty())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
409 throw new ValidationError("table cannot be set without schema");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
410 if (!database.isEmpty() && !namePattern.matcher(database).matches())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
411 throw new ValidationError("invalid database name");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
412 if (!tableschema.isEmpty() && !namePattern.matcher(tableschema).matches())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
413 throw new ValidationError("invalid table schema name");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
414 if (!table.isEmpty() && !namePattern.matcher(table).matches())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
415 throw new ValidationError("invalid table name");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
416
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
417
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
418 // 8. Parameter **port** must be -1 or in the range 1-65535.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
419 if (port < -1 || port == 0 || port > 65535) throw new ValidationError("invalid port number " + port);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
420
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
421 // 9. If **clientcert** is set, **clientkey** must also be set.
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
422 if (!clientcert.isEmpty() && clientkey.isEmpty())
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
423 throw new ValidationError("clientcert= is only valid in combination with clientkey=");
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
424 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
425
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
426 public boolean getTls() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
427 return tls;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
428 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
429
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
430 // Getter is private because you probably want connectTcp() instead
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
431 private String getHost() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
432 return host;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
433 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
434
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
435 // Getter is private because you probably want connectPort() instead
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
436 private int getPort() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
437 return port;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
438 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
439
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
440 public String getDatabase() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
441 return database;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
442 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
443
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
444 public String getTableschema() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
445 return tableschema;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
446 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
447
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
448 public String getTable() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
449 return table;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
450 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
451
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
452 // Getter is private because you probably want connectUnix() instead
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
453 private String getSock() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
454 return sock;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
455 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
456
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
457 public String getSockdir() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
458 return sockdir;
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
459 }
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
460
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
461 public String getCert() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
462 return cert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
463 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
464
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
465 public String getCerthash() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
466 return certhash;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
467 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
468
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
469 public String getClientkey() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
470 return clientkey;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
471 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
472
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
473 public String getClientcert() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
474 return clientcert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
475 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
476
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
477 public String getUser() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
478 return user;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
479 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
480
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
481 public String getPassword() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
482 return password;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
483 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
484
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
485 public String getLanguage() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
486 return language;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
487 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
488
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
489 public boolean getAutocommit() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
490 return autocommit;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
491 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
492
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
493 public String getSchema() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
494 return schema;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
495 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
496
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
497 public int getTimezone() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
498 return timezone;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
499 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
500
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
501 // Getter is private because you probably want connectBinary() instead
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
502 public int getBinary() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
503 return nbinary;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
504 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
505
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
506 public int getReplysize() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
507 return replysize;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
508 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
509
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
510 public String getHash() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
511 return hash;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
512 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
513
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
514 public boolean getDebug() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
515 return debug;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
516 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
517
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
518 public String getLogfile() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
519 return logfile;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
520 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
521
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
522 public boolean connectScan() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
523 if (database.isEmpty()) return false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
524 if (!sock.isEmpty() || !host.isEmpty() || port != -1) return false;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
525 return !tls;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
526 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
527
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
528 public int connectPort() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
529 return port == -1 ? 50000 : port;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
530 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
531
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
532 public String connectUnix() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
533 if (!sock.isEmpty()) return sock;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
534 if (tls) return "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
535 if (host.isEmpty()) return sockdir + "/.s.monetdb." + connectPort();
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
536 return "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
537 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
538
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
539 public String connectTcp() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
540 if (!sock.isEmpty()) return "";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
541 if (host.isEmpty()) return "localhost";
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
542 return host;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
543 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
544
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
545 public Verify connectVerify() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
546 if (!tls) return Verify.None;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
547 if (!certhash.isEmpty()) return Verify.Hash;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
548 if (!cert.isEmpty()) return Verify.Cert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
549 return Verify.System;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
550 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
551
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
552 public String connectCertHashDigits() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
553 if (!tls) return null;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
554 StringBuilder builder = new StringBuilder(certhash.length());
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
555 for (int i = "sha256:".length(); i < certhash.length(); i++) {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
556 char c = certhash.charAt(i);
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
557 if (Character.digit(c, 16) >= 0) builder.append(Character.toLowerCase(c));
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
558 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
559 return builder.toString();
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
560 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
561
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
562 public int connectBinary() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
563 return nbinary;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
564 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
565
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
566 public String connectClientKey() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
567 return clientkey;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
568 }
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
569
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
570 public String connectClientCert() {
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
571 return clientcert.isEmpty() ? clientkey : clientcert;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 790
diff changeset
572 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
573 }
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
574 }