Mercurial > hg > monetdb-java
annotate src/main/java/org/monetdb/mcl/net/HandshakeOption.java @ 918:2543e24eb79a
Add final to more classes.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Wed, 24 Jul 2024 19:38:33 +0200 (9 months ago) |
parents | e890195256ac |
children | d416e9b6b3d0 |
rev | line source |
---|---|
677
e73c4a1f41c6
Add missing Copyright header info
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
671
diff
changeset
|
1 /* |
833
e890195256ac
Update copyright for the new year, move to MonetDB Foundation, add SPDX.
Sjoerd Mullender <sjoerd@acm.org>
parents:
716
diff
changeset
|
2 * SPDX-License-Identifier: MPL-2.0 |
e890195256ac
Update copyright for the new year, move to MonetDB Foundation, add SPDX.
Sjoerd Mullender <sjoerd@acm.org>
parents:
716
diff
changeset
|
3 * |
677
e73c4a1f41c6
Add missing Copyright header info
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
671
diff
changeset
|
4 * This Source Code Form is subject to the terms of the Mozilla Public |
e73c4a1f41c6
Add missing Copyright header info
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
671
diff
changeset
|
5 * License, v. 2.0. If a copy of the MPL was not distributed with this |
e73c4a1f41c6
Add missing Copyright header info
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
671
diff
changeset
|
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
e73c4a1f41c6
Add missing Copyright header info
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
671
diff
changeset
|
7 * |
833
e890195256ac
Update copyright for the new year, move to MonetDB Foundation, add SPDX.
Sjoerd Mullender <sjoerd@acm.org>
parents:
716
diff
changeset
|
8 * Copyright 2024 MonetDB Foundation; |
e890195256ac
Update copyright for the new year, move to MonetDB Foundation, add SPDX.
Sjoerd Mullender <sjoerd@acm.org>
parents:
716
diff
changeset
|
9 * Copyright August 2008 - 2023 MonetDB B.V.; |
e890195256ac
Update copyright for the new year, move to MonetDB Foundation, add SPDX.
Sjoerd Mullender <sjoerd@acm.org>
parents:
716
diff
changeset
|
10 * Copyright 1997 - July 2008 CWI. |
677
e73c4a1f41c6
Add missing Copyright header info
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
671
diff
changeset
|
11 */ |
e73c4a1f41c6
Add missing Copyright header info
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
671
diff
changeset
|
12 |
671
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
13 package org.monetdb.mcl.net; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
14 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
15 public abstract class HandshakeOption<T> { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
16 protected final int level; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
17 protected final String handshakeField; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
18 boolean sent = false; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
19 T desiredValue; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
20 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
21 protected HandshakeOption(int level, String handshakeField, T desiredValue) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
22 if (desiredValue == null) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
23 throw new IllegalArgumentException("initial value must not be null"); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
24 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
25 this.level = level; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
26 this.handshakeField = handshakeField; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
27 this.desiredValue = desiredValue; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
28 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
29 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
30 public void set(T newValue) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
31 if (newValue == null) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
32 throw new IllegalArgumentException("new value must not be null"); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
33 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
34 desiredValue = newValue; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
35 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
36 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
37 public T get() { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
38 return desiredValue; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
39 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
40 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
41 public int getLevel() { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
42 return level; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
43 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
44 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
45 public String getFieldName() { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
46 return handshakeField; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
47 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
48 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
49 public boolean isSent() { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
50 return sent; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
51 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
52 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
53 public void setSent(boolean b) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
54 sent = b; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
55 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
56 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
57 public boolean mustSend(T currentValue) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
58 if (sent) |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
59 return false; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
60 if (currentValue.equals(desiredValue)) |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
61 return false; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
62 return true; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
63 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
64 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
65 abstract long numericValue(); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
66 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
67 protected static class BooleanOption extends HandshakeOption<Boolean> { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
68 protected BooleanOption(int level, String name, Boolean initialValue) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
69 super(level, name, initialValue); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
70 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
71 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
72 @Override |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
73 long numericValue() { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
74 return desiredValue ? 1 : 0; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
75 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
76 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
77 |
918
2543e24eb79a
Add final to more classes.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
833
diff
changeset
|
78 public final static class AutoCommit extends BooleanOption { |
671
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
79 public AutoCommit(boolean autoCommit) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
80 super(1, "auto_commit", autoCommit); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
81 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
82 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
83 |
918
2543e24eb79a
Add final to more classes.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
833
diff
changeset
|
84 public final static class ReplySize extends HandshakeOption<Integer> { |
671
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
85 public ReplySize(int size) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
86 super(2, "reply_size", size); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
87 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
88 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
89 @Override |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
90 long numericValue() { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
91 return desiredValue; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
92 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
93 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
94 |
918
2543e24eb79a
Add final to more classes.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
833
diff
changeset
|
95 public final static class SizeHeader extends BooleanOption { |
671
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
96 public SizeHeader(boolean sendHeader) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
97 super(3, "size_header", sendHeader); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
98 set(sendHeader); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
99 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
100 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
101 |
918
2543e24eb79a
Add final to more classes.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents:
833
diff
changeset
|
102 public final static class TimeZone extends HandshakeOption<Integer> { |
671
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
103 public TimeZone(int offset) { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
104 super(5, "time_zone", offset); |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
105 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
106 |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
107 @Override |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
108 long numericValue() { |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
109 return desiredValue; |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
110 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
111 } |
fade6c6960cc
Refactor Handshake options
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
112 } |