diff --git a/src/main/java/io/tarantool/driver/api/space/options/BaseOptions.java b/src/main/java/io/tarantool/driver/api/space/options/BaseOptions.java index ccec767d..84073a24 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/BaseOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/BaseOptions.java @@ -1,7 +1,8 @@ package io.tarantool.driver.api.space.options; -import java.util.HashMap; -import java.util.Map; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + +import java.util.EnumMap; import java.util.Optional; /** @@ -12,7 +13,7 @@ */ public abstract class BaseOptions implements Options { - private final Map resultMap = new HashMap<>(); + private final EnumMap resultMap = new EnumMap<>(ProxyOption.class); /** * Add an option value. @@ -20,7 +21,7 @@ public abstract class BaseOptions implements Options { * @param option option name * @param value option value */ - public void addOption(String option, Object value) { + public void addOption(ProxyOption option, Object value) { resultMap.put(option, value); } @@ -31,7 +32,7 @@ public void addOption(String option, Object value) { * @param optionClass option value type */ @SuppressWarnings("unchecked") - public Optional getOption(String option, Class optionClass) { + public Optional getOption(ProxyOption option, Class optionClass) { return Optional.ofNullable((T) resultMap.get(option)); } } diff --git a/src/main/java/io/tarantool/driver/api/space/options/OperationWithBucketIdOptions.java b/src/main/java/io/tarantool/driver/api/space/options/OperationWithBucketIdOptions.java index 0d268ea8..41091980 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/OperationWithBucketIdOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/OperationWithBucketIdOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.api.space.options; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.Optional; /** @@ -10,8 +12,6 @@ public interface OperationWithBucketIdOptions> extends Options, Self { - String BUCKET_ID = "bucket_id"; - /** * Specifies bucket id for an operation to perform it on storage with this bucket. It may be useful * if a non-default sharding function is used or in other specific cases. @@ -26,7 +26,7 @@ public interface OperationWithBucketIdOptionscrud */ default T withBucketId(Integer bucketId) { - addOption(BUCKET_ID, bucketId); + addOption(ProxyOption.BUCKET_ID, bucketId); return self(); } @@ -36,6 +36,6 @@ default T withBucketId(Integer bucketId) { * @return bucket id */ default Optional getBucketId() { - return getOption(BUCKET_ID, Integer.class); + return getOption(ProxyOption.BUCKET_ID, Integer.class); } } diff --git a/src/main/java/io/tarantool/driver/api/space/options/OperationWithFieldsOptions.java b/src/main/java/io/tarantool/driver/api/space/options/OperationWithFieldsOptions.java index 4778e8b7..4f4dcc8b 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/OperationWithFieldsOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/OperationWithFieldsOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.api.space.options; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.List; import java.util.Optional; @@ -11,8 +13,6 @@ public interface OperationWithFieldsOptions> extends Options, Self { - String FIELDS = "fields"; - /** * Specifies list of fields names for getting only a subset of fields. * By default, all fields are returned. @@ -21,7 +21,7 @@ public interface OperationWithFieldsOptions fields) { - addOption(FIELDS, fields); + addOption(ProxyOption.FIELDS, fields); return self(); } @@ -31,6 +31,6 @@ default T withFields(List fields) { * @return list of fields string names */ default Optional getFields() { - return getOption(FIELDS, List.class); + return getOption(ProxyOption.FIELDS, List.class); } } diff --git a/src/main/java/io/tarantool/driver/api/space/options/OperationWithModeOptions.java b/src/main/java/io/tarantool/driver/api/space/options/OperationWithModeOptions.java index ecd79a0a..163c8564 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/OperationWithModeOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/OperationWithModeOptions.java @@ -1,6 +1,7 @@ package io.tarantool.driver.api.space.options; import io.tarantool.driver.api.space.options.enums.crud.Mode; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; import java.util.Optional; @@ -19,7 +20,7 @@ public interface OperationWithModeOptions> * @return this options instance. */ default T withMode(Mode mode) { - addOption(Mode.NAME, mode.value()); + addOption(ProxyOption.MODE, mode.value()); return self(); } @@ -29,7 +30,7 @@ default T withMode(Mode mode) { * @return mode. */ default Optional getMode() { - return getOption(Mode.NAME, Mode.class); + return getOption(ProxyOption.MODE, Mode.class); } } diff --git a/src/main/java/io/tarantool/driver/api/space/options/OperationWithRollbackOnErrorOptions.java b/src/main/java/io/tarantool/driver/api/space/options/OperationWithRollbackOnErrorOptions.java index 76c279f9..dd2379f3 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/OperationWithRollbackOnErrorOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/OperationWithRollbackOnErrorOptions.java @@ -1,6 +1,7 @@ package io.tarantool.driver.api.space.options; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; import io.tarantool.driver.api.space.options.enums.crud.RollbackOnError; import java.util.Optional; @@ -12,6 +13,7 @@ */ public interface OperationWithRollbackOnErrorOptions> extends Options, Self { + /** * Specifies whether to not save any changes in the space if any tuple replace operation * is unsuccesful. Default value is true. @@ -20,7 +22,7 @@ public interface OperationWithRollbackOnErrorOptions getRollbackOnError() { - return getOption(RollbackOnError.NAME, Boolean.class); + return getOption(ProxyOption.ROLLBACK_ON_ERROR, Boolean.class); } } diff --git a/src/main/java/io/tarantool/driver/api/space/options/OperationWithStopOnErrorOptions.java b/src/main/java/io/tarantool/driver/api/space/options/OperationWithStopOnErrorOptions.java index 1b5e2cd2..806c5fdd 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/OperationWithStopOnErrorOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/OperationWithStopOnErrorOptions.java @@ -1,5 +1,6 @@ package io.tarantool.driver.api.space.options; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; import io.tarantool.driver.api.space.options.enums.crud.StopOnError; import java.util.Optional; @@ -20,7 +21,7 @@ public interface OperationWithStopOnErrorOptions getStopOnError() { - return getOption(StopOnError.NAME, Boolean.class); + return getOption(ProxyOption.STOP_ON_ERROR, Boolean.class); } } diff --git a/src/main/java/io/tarantool/driver/api/space/options/OperationWithTimeoutOptions.java b/src/main/java/io/tarantool/driver/api/space/options/OperationWithTimeoutOptions.java index a4090ba6..93ba16bf 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/OperationWithTimeoutOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/OperationWithTimeoutOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.api.space.options; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.Optional; /** @@ -9,8 +11,6 @@ */ public interface OperationWithTimeoutOptions> extends Options, Self { - String TIMEOUT = "timeout"; - /** * Specifies timeout for waiting for a server response for the operation. * Configured request timeout for that client will be used by default. @@ -22,7 +22,7 @@ default T withTimeout(int timeout) { if (timeout <= 0) { throw new IllegalArgumentException("Timeout should be greater than 0"); } - addOption(TIMEOUT, timeout); + addOption(ProxyOption.TIMEOUT, timeout); return self(); } @@ -32,6 +32,6 @@ default T withTimeout(int timeout) { * @return timeout, in milliseconds. */ default Optional getTimeout() { - return getOption(TIMEOUT, Integer.class); + return getOption(ProxyOption.TIMEOUT, Integer.class); } } diff --git a/src/main/java/io/tarantool/driver/api/space/options/Options.java b/src/main/java/io/tarantool/driver/api/space/options/Options.java index e06a3ec4..17f05720 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/Options.java +++ b/src/main/java/io/tarantool/driver/api/space/options/Options.java @@ -1,5 +1,7 @@ package io.tarantool.driver.api.space.options; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.Optional; /** @@ -16,7 +18,7 @@ public interface Options { * @param option name of option * @param value value of option */ - void addOption(String option, Object value); + void addOption(ProxyOption option, Object value); /** * Return option value by name. @@ -26,5 +28,5 @@ public interface Options { * @param option value type * @return option value */ - Optional getOption(String option, Class optionClass); + Optional getOption(ProxyOption option, Class optionClass); } diff --git a/src/main/java/io/tarantool/driver/api/space/options/enums/crud/Mode.java b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/Mode.java index 6f4bb036..0b270279 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/enums/crud/Mode.java +++ b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/Mode.java @@ -10,7 +10,6 @@ public enum Mode { WRITE("write"), READ("read"); - public static final String NAME = "mode"; private final String value; Mode(String value) { diff --git a/src/main/java/io/tarantool/driver/api/space/options/enums/crud/RollbackOnError.java b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/RollbackOnError.java index 2dec6b38..2c9c4d4d 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/enums/crud/RollbackOnError.java +++ b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/RollbackOnError.java @@ -12,7 +12,6 @@ public enum RollbackOnError { FALSE(false); - public static final String NAME = "rollback_on_error"; private final boolean value; RollbackOnError(boolean value) { diff --git a/src/main/java/io/tarantool/driver/api/space/options/enums/crud/StopOnError.java b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/StopOnError.java index 03492c91..e546115c 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/enums/crud/StopOnError.java +++ b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/StopOnError.java @@ -12,7 +12,6 @@ public enum StopOnError { FALSE(false); - public static final String NAME = "stop_on_error"; private final boolean value; StopOnError(boolean value) { diff --git a/src/main/java/io/tarantool/driver/api/space/options/proxy/ProxySelectOptions.java b/src/main/java/io/tarantool/driver/api/space/options/proxy/ProxySelectOptions.java index 179f85b2..575aa826 100644 --- a/src/main/java/io/tarantool/driver/api/space/options/proxy/ProxySelectOptions.java +++ b/src/main/java/io/tarantool/driver/api/space/options/proxy/ProxySelectOptions.java @@ -2,6 +2,7 @@ import io.tarantool.driver.api.space.options.BaseOptions; import io.tarantool.driver.api.space.options.SelectOptions; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; import java.util.Optional; @@ -13,8 +14,6 @@ */ public final class ProxySelectOptions extends BaseOptions implements SelectOptions { - public static final String BATCH_SIZE = "batch_size"; - private ProxySelectOptions() { } @@ -37,7 +36,7 @@ public ProxySelectOptions withBatchSize(int batchSize) { if (batchSize <= 0) { throw new IllegalArgumentException("Batch size should be greater than 0"); } - addOption(BATCH_SIZE, batchSize); + addOption(ProxyOption.BATCH_SIZE, batchSize); return self(); } @@ -48,6 +47,6 @@ public ProxySelectOptions self() { @Override public Optional getBatchSize() { - return getOption(BATCH_SIZE, Integer.class); + return getOption(ProxyOption.BATCH_SIZE, Integer.class); } }