From 8661a004034267e9644a35175521642dfc89a46a Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Sat, 20 May 2017 11:35:00 +0200 Subject: [PATCH] Improve enum usage Usage of the Java Enum feature can be improved by the driver. This commit includes the following changes: - use ordinal where possible - make enum fields final where possible --- .../java/com/microsoft/sqlserver/jdbc/AE.java | 24 ++++--------------- .../sqlserver/jdbc/SQLServerDriver.java | 22 ++++++++--------- .../jdbc/SQLServerEncryptionType.java | 2 +- .../sqlserver/jdbc/SQLServerSortOrder.java | 2 +- 4 files changed, 17 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/AE.java b/src/main/java/com/microsoft/sqlserver/jdbc/AE.java index 6a4ddba135..a9930da933 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/AE.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/AE.java @@ -254,17 +254,9 @@ enum DescribeParameterEncryptionResultSet1 { KeyPath, KeyEncryptionAlgorithm; - private int value; - - // Column indexing starts from 1; - static { - for (int i = 0; i < values().length; ++i) { - values()[i].value = i + 1; - } - } - int value() { - return value; + // Column indexing starts from 1; + return ordinal() + 1; } } @@ -279,17 +271,9 @@ enum DescribeParameterEncryptionResultSet2 { ColumnEncryptionKeyOrdinal, NormalizationRuleVersion; - private int value; - - // Column indexing starts from 1; - static { - for (int i = 0; i < values().length; ++i) { - values()[i].value = i + 1; - } - } - int value() { - return value; + // Column indexing starts from 1; + return ordinal() + 1; } } diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDriver.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDriver.java index 646af582bf..23226ee070 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDriver.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDriver.java @@ -161,7 +161,7 @@ enum ApplicationIntent { READ_ONLY("readonly"); // the value of the enum - private String value; + private final String value; // constructor that sets the string value of the enum private ApplicationIntent(String value) { @@ -196,11 +196,11 @@ else if (value.equalsIgnoreCase(ApplicationIntent.READ_WRITE.toString())) { enum SQLServerDriverObjectProperty { GSS_CREDENTIAL("gsscredential", null); - private String name; - private Object defaultValue; + private final String name; + private final String defaultValue; private SQLServerDriverObjectProperty(String name, - Object defaultValue) { + String defaultValue) { this.name = name; this.defaultValue = defaultValue; } @@ -210,7 +210,7 @@ private SQLServerDriverObjectProperty(String name, * @return */ public String getDefaultValue() { - return null; + return defaultValue; } public String toString() { @@ -249,8 +249,8 @@ enum SQLServerDriverStringProperty FIPS_PROVIDER ("fipsProvider", ""), ; - private String name; - private String defaultValue; + private final String name; + private final String defaultValue; private SQLServerDriverStringProperty(String name, String defaultValue) { @@ -276,8 +276,8 @@ enum SQLServerDriverIntProperty { SOCKET_TIMEOUT ("socketTimeout", 0), SERVER_PREPARED_STATEMENT_DISCARD_THRESHOLD("serverPreparedStatementDiscardThreshold", -1/*This is not the default, default handled in SQLServerConnection and is not final/const*/); - private String name; - private int defaultValue; + private final String name; + private final int defaultValue; private SQLServerDriverIntProperty(String name, int defaultValue) { @@ -310,8 +310,8 @@ enum SQLServerDriverBooleanProperty FIPS ("fips", false), ENABLE_PREPARE_ON_FIRST_PREPARED_STATEMENT("enablePrepareOnFirstPreparedStatementCall", false/*This is not the default, default handled in SQLServerConnection and is not final/const*/); - private String name; - private boolean defaultValue; + private final String name; + private final boolean defaultValue; private SQLServerDriverBooleanProperty(String name, boolean defaultValue) { diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerEncryptionType.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerEncryptionType.java index 71ca022ee7..3e7812e170 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerEncryptionType.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerEncryptionType.java @@ -20,7 +20,7 @@ enum SQLServerEncryptionType { Randomized ((byte) 2), PlainText ((byte) 0); - byte value; + final byte value; SQLServerEncryptionType(byte val) { this.value = val; diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerSortOrder.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerSortOrder.java index acb2125ca4..542912b765 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerSortOrder.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerSortOrder.java @@ -18,7 +18,7 @@ public enum SQLServerSortOrder { Descending (1), Unspecified (-1); - int value; + final int value; SQLServerSortOrder(int sortOrderVal) { value = sortOrderVal;