diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c7833865..a5e19831e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,16 @@ ### API changes - Add "mode" option for crud select operation ([#107](https://github.com/tarantool/cartridge-java/issues/107)) -- Change using of proxy client parameters (mode, rollback_on_error, stop_on_error) with enum classes([#419](https://github.com/tarantool/cartridge-java/issues/419)) +- Change using of proxy client parameters (mode, rollback_on_error, stop_on_error) with enum classes ([#419](https://github.com/tarantool/cartridge-java/issues/419)) ### Bugfixes - Fix Instant converter to parse 8 bytes datetime ([#408](https://github.com/tarantool/cartridge-java/issues/408)) +### Internal changes + +- Change using of option names with the String type in the internal API to using with the ProxyOption enum class ([#420](https://github.com/tarantool/cartridge-java/issues/420)) + ## [0.12.1] - 2023-08-04 ### Bugfixes 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 ccec767d6..84073a24c 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 0d268ea8e..41091980e 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 4778e8b71..4f4dcc8bc 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 ecd79a0a9..163c85644 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 76c279f90..dd2379f3f 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 1b5e2cd20..806c5fdde 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 a4090ba63..93ba16bf1 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 e06a3ec49..17f05720f 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 6f4bb0364..0b270279a 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/ProxyOption.java b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/ProxyOption.java new file mode 100644 index 000000000..37ca74e6d --- /dev/null +++ b/src/main/java/io/tarantool/driver/api/space/options/enums/crud/ProxyOption.java @@ -0,0 +1,38 @@ +package io.tarantool.driver.api.space.options.enums.crud; + +/** + * General enumeration class representing the names of CRUD options. + * + * @author Belonogov Nikolay + */ +public enum ProxyOption { + + MODE("mode"), + + ROLLBACK_ON_ERROR("rollback_on_error"), + + STOP_ON_ERROR("stop_on_error"), + + TIMEOUT("timeout"), + + FIELDS("fields"), + + BUCKET_ID("bucket_id"), + + BATCH_SIZE("batch_size"), + + AFTER("after"), + + FIRST("first"); + + private final String name; + + ProxyOption(String name) { + this.name = name; + } + + @Override + public String toString() { + return this.name; + } +} 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 2dec6b384..2c9c4d4d7 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 03492c913..e546115cf 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 179f85b2c..575aa8260 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); } } diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDAbstractOperationOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDAbstractOperationOptions.java index 9cc6239a9..099c907a2 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDAbstractOperationOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDAbstractOperationOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -16,6 +18,21 @@ abstract class CRUDAbstractOperationOptions { private final Map resultMap = new HashMap<>(); + protected void addOption(ProxyOption option, Optional value) { + if (value.isPresent()) { + resultMap.put(option.toString(), value.get()); + } + } + + /** + * Return serializable options representation. + * + * @return a map + */ + public Map asMap() { + return resultMap; + } + /** * Inheritable Builder for cluster proxy operation options. *

@@ -38,19 +55,4 @@ class AbstractBuilder value) { - if (value.isPresent()) { - resultMap.put(option, value.get()); - } - } - - /** - * Return serializable options representation. - * - * @return a map - */ - public Map asMap() { - return resultMap; - } } diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDBaseOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDBaseOptions.java index d88ffac4a..f21a5e473 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDBaseOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDBaseOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.Optional; /** @@ -12,11 +14,9 @@ */ class CRUDBaseOptions extends CRUDAbstractOperationOptions { - public static final String TIMEOUT = "timeout"; - protected > CRUDBaseOptions(AbstractBuilder builder) { - addOption(TIMEOUT, builder.timeout); + addOption(ProxyOption.TIMEOUT, builder.timeout); } /** diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDBatchOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDBatchOptions.java index 2beee28e0..67c577537 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDBatchOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDBatchOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.Optional; /** @@ -11,14 +13,11 @@ */ final class CRUDBatchOptions extends CRUDReturnOptions { - public static final String BATCH_STOP_ON_ERROR = "stop_on_error"; - public static final String BATCH_ROLLBACK_ON_ERROR = "rollback_on_error"; - private > CRUDBatchOptions(AbstractBuilder builder) { super(builder); - addOption(BATCH_STOP_ON_ERROR, builder.stopOnError); - addOption(BATCH_ROLLBACK_ON_ERROR, builder.rollbackOnError); + addOption(ProxyOption.STOP_ON_ERROR, builder.stopOnError); + addOption(ProxyOption.ROLLBACK_ON_ERROR, builder.rollbackOnError); } protected abstract static class AbstractBuilder> diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDBucketIdOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDBucketIdOptions.java index c9bc7ee36..a08c18370 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDBucketIdOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDBucketIdOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.Optional; /** @@ -13,12 +15,10 @@ */ class CRUDBucketIdOptions extends CRUDBaseOptions { - public static final String BUCKET_ID = "bucket_id"; - protected > CRUDBucketIdOptions(CRUDBucketIdOptions.AbstractBuilder builder) { super(builder); - addOption(BUCKET_ID, builder.bucketId); + addOption(ProxyOption.BUCKET_ID, builder.bucketId); } protected abstract static diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDDeleteOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDDeleteOptions.java index d1821e037..078a878ca 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDDeleteOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDDeleteOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.List; import java.util.Optional; @@ -13,12 +15,10 @@ */ class CRUDDeleteOptions extends CRUDBucketIdOptions { - public static final String FIELDS = "fields"; - protected > CRUDDeleteOptions(CRUDDeleteOptions.AbstractBuilder builder) { super(builder); - addOption(FIELDS, builder.fields); + addOption(ProxyOption.FIELDS, builder.fields); } protected abstract static diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDInsertOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDInsertOptions.java index aa2e7907a..f969d00bc 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDInsertOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDInsertOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.List; import java.util.Optional; @@ -13,12 +15,10 @@ */ class CRUDInsertOptions extends CRUDBucketIdOptions { - public static final String FIELDS = "fields"; - protected > CRUDInsertOptions(CRUDInsertOptions.AbstractBuilder builder) { super(builder); - addOption(FIELDS, builder.fields); + addOption(ProxyOption.FIELDS, builder.fields); } protected abstract static diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDReplaceOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDReplaceOptions.java index 605f328d0..70a4679db 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDReplaceOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDReplaceOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.List; import java.util.Optional; @@ -13,12 +15,10 @@ */ class CRUDReplaceOptions extends CRUDBucketIdOptions { - public static final String FIELDS = "fields"; - protected > CRUDReplaceOptions(CRUDReplaceOptions.AbstractBuilder builder) { super(builder); - addOption(FIELDS, builder.fields); + addOption(ProxyOption.FIELDS, builder.fields); } protected abstract static diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDReturnOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDReturnOptions.java index 52d154291..3a5b892bb 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDReturnOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDReturnOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.List; import java.util.Optional; @@ -14,12 +16,10 @@ */ class CRUDReturnOptions extends CRUDBaseOptions { - public static final String FIELDS = "fields"; - protected > CRUDReturnOptions(CRUDReturnOptions.AbstractBuilder builder) { super(builder); - addOption(FIELDS, builder.fields); + addOption(ProxyOption.FIELDS, builder.fields); } protected abstract static diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDSelectOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDSelectOptions.java index 677c39ed6..e42e91305 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDSelectOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDSelectOptions.java @@ -1,5 +1,6 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; import io.tarantool.driver.protocol.Packable; import java.util.List; @@ -16,20 +17,14 @@ */ final class CRUDSelectOptions extends CRUDBucketIdOptions { - public static final String SELECT_LIMIT = "first"; - public static final String SELECT_AFTER = "after"; - public static final String SELECT_BATCH_SIZE = "batch_size"; - public static final String FIELDS = "fields"; - public static final String MODE = "mode"; - private > CRUDSelectOptions(AbstractBuilder builder) { super(builder); - addOption(SELECT_LIMIT, builder.selectLimit); - addOption(SELECT_AFTER, builder.after); - addOption(SELECT_BATCH_SIZE, builder.selectBatchSize); - addOption(FIELDS, builder.fields); - addOption(MODE, builder.mode); + addOption(ProxyOption.FIRST, builder.first); + addOption(ProxyOption.AFTER, builder.after); + addOption(ProxyOption.BATCH_SIZE, builder.batchSize); + addOption(ProxyOption.FIELDS, builder.fields); + addOption(ProxyOption.MODE, builder.mode); } /** @@ -39,24 +34,24 @@ private > CRUDSelectOptions(AbstractBuilder buil */ protected abstract static class AbstractBuilder> extends CRUDBucketIdOptions.AbstractBuilder { - private Optional selectLimit = Optional.empty(); + private Optional first = Optional.empty(); private Optional after = Optional.empty(); - private Optional selectBatchSize = Optional.empty(); + private Optional batchSize = Optional.empty(); private Optional fields = Optional.empty(); private Optional mode = Optional.empty(); - public B withSelectLimit(Optional selectLimit) { - this.selectLimit = selectLimit; + public B withSelectLimit(Optional first) { + this.first = first; return self(); } - public B withSelectBatchSize(Optional selectBatchSize) { - this.selectBatchSize = selectBatchSize; + public B withSelectBatchSize(Optional batchSize) { + this.batchSize = batchSize; return self(); } - public B withSelectAfter(Optional startTuple) { - this.after = startTuple; + public B withSelectAfter(Optional after) { + this.after = after; return self(); } diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDUpdateOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDUpdateOptions.java index b7a01611e..45abee506 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDUpdateOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDUpdateOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.List; import java.util.Optional; @@ -13,12 +15,10 @@ */ class CRUDUpdateOptions extends CRUDBucketIdOptions { - public static final String FIELDS = "fields"; - protected > CRUDUpdateOptions(CRUDUpdateOptions.AbstractBuilder builder) { super(builder); - addOption(FIELDS, builder.fields); + addOption(ProxyOption.FIELDS, builder.fields); } protected abstract static diff --git a/src/main/java/io/tarantool/driver/core/proxy/CRUDUpsertOptions.java b/src/main/java/io/tarantool/driver/core/proxy/CRUDUpsertOptions.java index 729d6f4b8..a9dee5080 100644 --- a/src/main/java/io/tarantool/driver/core/proxy/CRUDUpsertOptions.java +++ b/src/main/java/io/tarantool/driver/core/proxy/CRUDUpsertOptions.java @@ -1,5 +1,7 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; + import java.util.List; import java.util.Optional; @@ -13,12 +15,10 @@ */ class CRUDUpsertOptions extends CRUDBucketIdOptions { - public static final String FIELDS = "fields"; - protected > CRUDUpsertOptions(CRUDUpsertOptions.AbstractBuilder builder) { super(builder); - addOption(FIELDS, builder.fields); + addOption(ProxyOption.FIELDS, builder.fields); } protected abstract static diff --git a/src/test/java/io/tarantool/driver/core/proxy/CRUDOperationOptionsTest.java b/src/test/java/io/tarantool/driver/core/proxy/CRUDOperationOptionsTest.java index ae1ab58c2..bf024fe88 100644 --- a/src/test/java/io/tarantool/driver/core/proxy/CRUDOperationOptionsTest.java +++ b/src/test/java/io/tarantool/driver/core/proxy/CRUDOperationOptionsTest.java @@ -1,5 +1,6 @@ package io.tarantool.driver.core.proxy; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; import io.tarantool.driver.api.tuple.TarantoolTuple; import io.tarantool.driver.core.tuple.TarantoolTupleImpl; import io.tarantool.driver.mappers.MessagePackMapper; @@ -39,10 +40,10 @@ public void selectOperationOptions_createNotEmptyTest() { assertEquals(4, options.asMap().size()); - assertEquals(1000, options.asMap().get(CRUDBaseOptions.TIMEOUT)); - assertEquals(50L, options.asMap().get(CRUDSelectOptions.SELECT_LIMIT)); - assertEquals(10, options.asMap().get(CRUDSelectOptions.SELECT_BATCH_SIZE)); - assertEquals(tuple, options.asMap().get(CRUDSelectOptions.SELECT_AFTER)); + assertEquals(1000, options.asMap().get(ProxyOption.TIMEOUT.toString())); + assertEquals(50L, options.asMap().get(ProxyOption.FIRST.toString())); + assertEquals(10, options.asMap().get(ProxyOption.BATCH_SIZE.toString())); + assertEquals(tuple, options.asMap().get(ProxyOption.AFTER.toString())); } @Test @@ -52,7 +53,7 @@ public void baseOperationOptions_createNotEmptyTest() { .build(); assertEquals(1, options.asMap().size()); - assertEquals(1000, options.asMap().get(CRUDBaseOptions.TIMEOUT)); + assertEquals(1000, options.asMap().get(ProxyOption.TIMEOUT.toString())); } @Test @@ -63,7 +64,7 @@ public void batchOperationOptions_createNotEmptyTest() { .build(); assertEquals(2, options.asMap().size()); - assertEquals(false, options.asMap().get(CRUDBatchOptions.BATCH_STOP_ON_ERROR)); - assertEquals(true, options.asMap().get(CRUDBatchOptions.BATCH_ROLLBACK_ON_ERROR)); + assertEquals(false, options.asMap().get(ProxyOption.STOP_ON_ERROR.toString())); + assertEquals(true, options.asMap().get(ProxyOption.ROLLBACK_ON_ERROR.toString())); } } diff --git a/src/test/java/io/tarantool/driver/core/proxy/ProxyOperationBuildersTest.java b/src/test/java/io/tarantool/driver/core/proxy/ProxyOperationBuildersTest.java index beb20653a..68d68e870 100644 --- a/src/test/java/io/tarantool/driver/core/proxy/ProxyOperationBuildersTest.java +++ b/src/test/java/io/tarantool/driver/core/proxy/ProxyOperationBuildersTest.java @@ -4,6 +4,7 @@ import io.tarantool.driver.api.TarantoolResult; import io.tarantool.driver.api.conditions.Conditions; import io.tarantool.driver.api.space.options.enums.crud.Mode; +import io.tarantool.driver.api.space.options.enums.crud.ProxyOption; import io.tarantool.driver.api.space.options.enums.crud.RollbackOnError; import io.tarantool.driver.api.space.options.enums.crud.StopOnError; import io.tarantool.driver.api.space.options.proxy.ProxyDeleteOptions; @@ -71,7 +72,7 @@ public void deleteOperationBuilderTest() { .build(); Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); assertEquals(client, deleteProxyOperation.getClient()); assertEquals("function1", deleteProxyOperation.getFunctionName()); @@ -99,7 +100,7 @@ public void insertOperationBuilderTest() { .build(); Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); assertEquals(client, insertOperation.getClient()); assertEquals("function1", insertOperation.getFunctionName()); @@ -128,11 +129,10 @@ public void insertManyOperationBuilderTest() { .withStopOnError(StopOnError.FALSE) ) .build(); - Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); - options.put(CRUDBatchOptions.BATCH_ROLLBACK_ON_ERROR, true); - options.put(CRUDBatchOptions.BATCH_STOP_ON_ERROR, false); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); + options.put(ProxyOption.ROLLBACK_ON_ERROR.toString(), true); + options.put(ProxyOption.STOP_ON_ERROR.toString(), false); assertEquals(client, operation.getClient()); assertEquals("function1", operation.getFunctionName()); @@ -159,7 +159,7 @@ public void replaceOperationBuilderTest() { .build(); Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); assertEquals(client, operation.getClient()); assertEquals("function1", operation.getFunctionName()); @@ -190,9 +190,9 @@ public void replaceManyOperationBuilderTest() { .build(); Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); - options.put(CRUDBatchOptions.BATCH_ROLLBACK_ON_ERROR, true); - options.put(CRUDBatchOptions.BATCH_STOP_ON_ERROR, false); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); + options.put(ProxyOption.ROLLBACK_ON_ERROR.toString(), true); + options.put(ProxyOption.STOP_ON_ERROR.toString(), false); assertEquals(client, operation.getClient()); assertEquals("function1", operation.getFunctionName()); @@ -228,10 +228,10 @@ public void selectOperationBuilderTest() { .build(); Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); - options.put(CRUDSelectOptions.SELECT_BATCH_SIZE, 123456); - options.put(CRUDSelectOptions.SELECT_LIMIT, 100L); - options.put(CRUDSelectOptions.MODE, Mode.WRITE.value()); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); + options.put(ProxyOption.BATCH_SIZE.toString(), 123456); + options.put(ProxyOption.FIRST.toString(), 100L); + options.put(ProxyOption.MODE.toString(), Mode.WRITE.value()); assertEquals(client, op.getClient()); assertEquals("function1", op.getFunctionName()); @@ -261,9 +261,8 @@ public void updateOperationBuilderTest() { .withTimeout(client.getConfig().getRequestTimeout()) ) .build(); - Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); assertEquals(client, operation.getClient()); assertEquals("function1", operation.getFunctionName()); @@ -300,7 +299,7 @@ public void upsertOperationBuilderTest() { .build(); Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); assertEquals(client, operation.getClient()); assertEquals("function1", operation.getFunctionName()); @@ -323,9 +322,9 @@ public void test_truncateOperationBuilder_shouldReturnTruncateOperationObjectsWi ) .build(); - // when prepare HashMap with options + // when prepare Map with options Map options = new HashMap<>(); - options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout()); + options.put(ProxyOption.TIMEOUT.toString(), client.getConfig().getRequestTimeout()); // then data is prepared check that is equals that we submitted to the builder assertEquals(client, truncateOperation.getClient());