annotate src/main/java/org/monetdb/mcl/net/Parameter.java @ 864:b80758ef25db

Add missing license headers
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 01 Feb 2024 17:45:49 +0100 (15 months ago)
parents 4d80fd66541d
children 5a59910e8f87
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
864
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
1 /*
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
2 * SPDX-License-Identifier: MPL-2.0
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
3 *
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
4 * This Source Code Form is subject to the terms of the Mozilla Public
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
7 *
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
8 * Copyright 2024 MonetDB Foundation;
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
9 * Copyright August 2008 - 2023 MonetDB B.V.;
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
10 * Copyright 1997 - July 2008 CWI.
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
11 */
b80758ef25db Add missing license headers
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 847
diff changeset
12
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
13 package org.monetdb.mcl.net;
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
14
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 789
diff changeset
15 import java.util.Calendar;
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 789
diff changeset
16
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
17 /**
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
18 * Enumerates things that can be configured on a connection to MonetDB.
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
19 */
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
20 public enum Parameter {
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
21 TLS("tls", ParameterType.Bool, false, "secure the connection using TLS", true),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
22 HOST("host", ParameterType.Str, "", "IP number, domain name or one of the special values `localhost` and `localhost.`", true),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
23 PORT("port", ParameterType.Int, -1, "Port to connect to, 1..65535 or -1 for 'not set'", true),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
24 DATABASE("database", ParameterType.Str, "", "name of database to connect to", true),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
25 TABLESCHEMA("tableschema", ParameterType.Str, "", "only used for REMOTE TABLE, otherwise unused", true),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
26 TABLE("table", ParameterType.Str, "", "only used for REMOTE TABLE, otherwise unused", true),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
27 SOCK("sock", ParameterType.Path, "", "path to Unix domain socket to connect to", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
28 SOCKDIR("sockdir", ParameterType.Path, "/tmp", "Directory for implicit Unix domain sockets (.s.monetdb.PORT)", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
29 CERT("cert", ParameterType.Path, "", "path to TLS certificate to authenticate server with", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
30 CERTHASH("certhash", ParameterType.Str, "", "hash of server TLS certificate must start with these hex digits; overrides cert", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
31 CLIENTKEY("clientkey", ParameterType.Path, "", "path to TLS key (+certs) to authenticate with as client", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
32 CLIENTCERT("clientcert", ParameterType.Path, "", "path to TLS certs for 'clientkey', if not included there", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
33 USER("user", ParameterType.Str, "", "user name to authenticate as", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
34 PASSWORD("password", ParameterType.Str, "", "password to authenticate with", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
35 LANGUAGE("language", ParameterType.Str, "sql", "for example, \"sql\", \"mal\", \"msql\", \"profiler\"", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
36 AUTOCOMMIT("autocommit", ParameterType.Bool, true, "initial value of autocommit", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
37 SCHEMA("schema", ParameterType.Str, "", "initial schema", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
38 TIMEZONE("timezone", ParameterType.Int, null, "client time zone as minutes east of UTC", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
39 BINARY("binary", ParameterType.Str, "on", "whether to use binary result set format (number or bool)", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
40 REPLYSIZE("replysize", ParameterType.Int, 250, "rows beyond this limit are retrieved on demand, <1 means unlimited", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
41 FETCHSIZE("fetchsize", ParameterType.Int, null, "alias for replysize, specific to jdbc", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
42 HASH("hash", ParameterType.Str, "", "specific to jdbc", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
43 DEBUG("debug", ParameterType.Bool, false, "specific to jdbc", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
44 LOGFILE("logfile", ParameterType.Str, "", "specific to jdbc", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
45 SO_TIMEOUT("so_timeout", ParameterType.Int, 0, "abort if network I/O does not complete in this many milliseconds", false), CLOB_AS_VARCHAR("treat_clob_as_varchar", ParameterType.Bool, true, "return CLOB/TEXT data as type VARCHAR instead of type CLOB", false), BLOB_AS_BINARY("treat_blob_as_binary", ParameterType.Bool, true, "return BLOB data as type BINARY instead of type BLOB", false),
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
46 ;
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
47
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
48 public final String name;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
49 public final ParameterType type;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
50 public final String description;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
51 public final boolean isCore;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
52 private final Object defaultValue;
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
53
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
54 Parameter(String name, ParameterType type, Object defaultValue, String description, boolean isCore) {
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
55 this.name = name;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
56 this.type = type;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
57 this.isCore = isCore;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
58 this.defaultValue = defaultValue;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
59 this.description = description;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
60 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
61
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
62 public static Parameter forName(String name) {
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
63 switch (name) {
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
64 case "tls":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
65 return TLS;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
66 case "host":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
67 return HOST;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
68 case "port":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
69 return PORT;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
70 case "database":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
71 return DATABASE;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
72 case "tableschema":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
73 return TABLESCHEMA;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
74 case "table":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
75 return TABLE;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
76 case "sock":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
77 return SOCK;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
78 case "sockdir":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
79 return SOCKDIR;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
80 case "cert":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
81 return CERT;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
82 case "certhash":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
83 return CERTHASH;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
84 case "clientkey":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
85 return CLIENTKEY;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
86 case "clientcert":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
87 return CLIENTCERT;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
88 case "user":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
89 return USER;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
90 case "password":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
91 return PASSWORD;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
92 case "language":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
93 return LANGUAGE;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
94 case "autocommit":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
95 return AUTOCOMMIT;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
96 case "schema":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
97 return SCHEMA;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
98 case "timezone":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
99 return TIMEZONE;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
100 case "binary":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
101 return BINARY;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
102 case "replysize":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
103 return REPLYSIZE;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
104 case "fetchsize":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
105 return FETCHSIZE;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
106 case "hash":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
107 return HASH;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
108 case "debug":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
109 return DEBUG;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
110 case "logfile":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
111 return LOGFILE;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
112 case "so_timeout":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
113 return SO_TIMEOUT;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
114 case "treat_clob_as_varchar":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
115 return CLOB_AS_VARCHAR;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
116 case "treat_blob_as_binary":
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
117 return BLOB_AS_BINARY;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
118 default:
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
119 return null;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
120 }
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
121 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
122
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
123 /**
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
124 * Determine if a given setting can safely be ignored.
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
125 * The ground rule is that if we encounter an unknown setting
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
126 * without an underscore in the name, it is an error. If it has
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
127 * an underscore in its name, it can be ignored.
847
4d80fd66541d formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 834
diff changeset
128 *
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
129 * @param name the name of the setting to check
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
130 * @return true if it can safely be ignored
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
131 */
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
132 public static boolean isIgnored(String name) {
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
133 if (Parameter.forName(name) != null)
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
134 return false;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
135 return name.contains("_");
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
136 }
791
4de810c22328 Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 789
diff changeset
137
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
138 /**
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
139 * Return a default value for the given setting, as an Object of the appropriate type.
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
140 * Note that the value returned for TIMEZONE may change if the system time zone
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
141 * is changed or if Daylight Saving Time starts or ends.
847
4d80fd66541d formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 834
diff changeset
142 *
834
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
143 * @return
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
144 */
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
145 public Object getDefault() {
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
146 switch (this) {
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
147 case TIMEZONE:
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
148 Calendar cal = Calendar.getInstance();
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
149 int offsetMillis = cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET);
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
150 int offsetSeconds = offsetMillis / 1000;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
151 return offsetSeconds;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
152 default:
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
153 return defaultValue;
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
154 }
5aa19bbed0d6 Comments and formatting
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 806
diff changeset
155 }
789
88c5b678e974 URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff changeset
156 }