refactoring

pull/2459/merge
Nikita Koksharov 2 years ago
parent 318f11fea6
commit 2a8711e8d2

@ -26,7 +26,7 @@ import org.redisson.api.RFuture;
import org.redisson.api.RGeo;
import org.redisson.api.RedissonClient;
import org.redisson.api.geo.GeoSearchArgs;
import org.redisson.api.geo.GeoSearchNode;
import org.redisson.api.geo.GeoSearchParams;
import org.redisson.client.codec.Codec;
import org.redisson.client.codec.LongCodec;
import org.redisson.client.codec.StringCodec;
@ -224,56 +224,55 @@ public class RedissonGeo<V> extends RedissonScoredSortedSet<V> implements RGeo<V
@Override
public RFuture<List<V>> searchAsync(GeoSearchArgs args) {
GeoSearchNode node = (GeoSearchNode) args;
Map<GeoSearchNode.Params, Object> params = node.getParams();
GeoSearchParams params = (GeoSearchParams) args;
List<Object> commandParams = new ArrayList<>();
commandParams.add(getRawName());
RedisCommand command = null;
if (params.get(GeoSearchNode.Params.LATITUDE) != null
&& params.get(GeoSearchNode.Params.LONGITUDE) != null) {
if (params.getLatitude() != null
&& params.getLongitude() != null) {
command = RedisCommands.GEORADIUS_RO;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = RedisCommands.GEOSEARCH;
commandParams.add("FROMLONLAT");
}
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LONGITUDE)));
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LATITUDE)));
commandParams.add(convert(params.getLongitude()));
commandParams.add(convert(params.getLatitude()));
}
if (params.get(GeoSearchNode.Params.MEMBER) != null) {
if (params.getMember() != null) {
command = RedisCommands.GEORADIUSBYMEMBER_RO;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = RedisCommands.GEOSEARCH;
commandParams.add("FROMMEMBER");
}
commandParams.add(encode(params.get(GeoSearchNode.Params.MEMBER)));
commandParams.add(encode(params.getMember()));
}
if (params.get(GeoSearchNode.Params.RADIUS) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
commandParams.add(params.get(GeoSearchNode.Params.RADIUS));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
if (params.getRadius() != null
&& params.getUnit() != null) {
commandParams.add(params.getRadius());
commandParams.add(params.getUnit());
}
if (params.get(GeoSearchNode.Params.HEIGHT) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
if (params.getHeight() != null
&& params.getUnit() != null) {
commandParams.add("BYBOX");
commandParams.add(params.get(GeoSearchNode.Params.WIDTH));
commandParams.add(params.get(GeoSearchNode.Params.HEIGHT));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
commandParams.add(params.getWidth());
commandParams.add(params.getHeight());
commandParams.add(params.getUnit());
if (params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getOrder() != null) {
commandParams.add(params.getOrder());
}
}
if (params.get(GeoSearchNode.Params.COUNT) != null) {
if (params.getCount() != null) {
commandParams.add("COUNT");
commandParams.add(params.get(GeoSearchNode.Params.COUNT));
if (params.get(GeoSearchNode.Params.COUNT_ANY) != null) {
commandParams.add(params.getCount());
if (params.isCountAny()) {
commandParams.add("ANY");
}
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null
&& params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getHeight() == null
&& params.getOrder() != null) {
commandParams.add(params.getOrder());
}
return commandExecutor.readAsync(getRawName(), codec, command, commandParams.toArray());
@ -286,61 +285,60 @@ public class RedissonGeo<V> extends RedissonScoredSortedSet<V> implements RGeo<V
@Override
public RFuture<Map<V, Double>> searchWithDistanceAsync(GeoSearchArgs args) {
GeoSearchNode node = (GeoSearchNode) args;
Map<GeoSearchNode.Params, Object> params = node.getParams();
GeoSearchParams params = (GeoSearchParams) args;
List<Object> commandParams = new ArrayList<>();
commandParams.add(getRawName());
RedisCommand command = null;
if (params.get(GeoSearchNode.Params.LATITUDE) != null
&& params.get(GeoSearchNode.Params.LONGITUDE) != null) {
if (params.getLatitude() != null
&& params.getLongitude() != null) {
command = GEORADIUS_RO_DISTANCE;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = GEOSEARCH_DISTANCE;
commandParams.add("FROMLONLAT");
}
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LONGITUDE)));
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LATITUDE)));
commandParams.add(convert(params.getLongitude()));
commandParams.add(convert(params.getLatitude()));
}
if (params.get(GeoSearchNode.Params.MEMBER) != null) {
if (params.getMember() != null) {
command = GEORADIUSBYMEMBER_RO_DISTANCE;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = GEOSEARCH_DISTANCE;
commandParams.add("FROMMEMBER");
}
commandParams.add(encode(params.get(GeoSearchNode.Params.MEMBER)));
commandParams.add(encode(params.getMember()));
}
if (params.get(GeoSearchNode.Params.RADIUS) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
commandParams.add(params.get(GeoSearchNode.Params.RADIUS));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
if (params.getRadius() != null
&& params.getUnit() != null) {
commandParams.add(params.getRadius());
commandParams.add(params.getUnit());
}
if (params.get(GeoSearchNode.Params.HEIGHT) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
if (params.getHeight() != null
&& params.getUnit() != null) {
commandParams.add("BYBOX");
commandParams.add(params.get(GeoSearchNode.Params.WIDTH));
commandParams.add(params.get(GeoSearchNode.Params.HEIGHT));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
commandParams.add(params.getWidth());
commandParams.add(params.getHeight());
commandParams.add(params.getUnit());
if (params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getOrder() != null) {
commandParams.add(params.getOrder());
}
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null) {
if (params.getHeight() == null) {
commandParams.add("WITHDIST");
}
if (params.get(GeoSearchNode.Params.COUNT) != null) {
if (params.getCount() != null) {
commandParams.add("COUNT");
commandParams.add(params.get(GeoSearchNode.Params.COUNT));
if (params.get(GeoSearchNode.Params.COUNT_ANY) != null) {
commandParams.add(params.getCount());
if (params.isCountAny()) {
commandParams.add("ANY");
}
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null
&& params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getHeight() == null
&& params.getOrder() != null) {
commandParams.add(params.getOrder());
}
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
commandParams.add("WITHDIST");
}
@ -354,61 +352,60 @@ public class RedissonGeo<V> extends RedissonScoredSortedSet<V> implements RGeo<V
@Override
public RFuture<Map<V, GeoPosition>> searchWithPositionAsync(GeoSearchArgs args) {
GeoSearchNode node = (GeoSearchNode) args;
Map<GeoSearchNode.Params, Object> params = node.getParams();
GeoSearchParams params = (GeoSearchParams) args;
List<Object> commandParams = new ArrayList<>();
commandParams.add(getRawName());
RedisCommand command = null;
if (params.get(GeoSearchNode.Params.LATITUDE) != null
&& params.get(GeoSearchNode.Params.LONGITUDE) != null) {
if (params.getLatitude() != null
&& params.getLongitude() != null) {
command = GEORADIUS_RO_POS;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = GEOSEARCH_POS;
commandParams.add("FROMLONLAT");
}
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LONGITUDE)));
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LATITUDE)));
commandParams.add(convert(params.getLongitude()));
commandParams.add(convert(params.getLatitude()));
}
if (params.get(GeoSearchNode.Params.MEMBER) != null) {
if (params.getMember() != null) {
command = GEORADIUSBYMEMBER_RO_POS;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = GEOSEARCH_POS;
commandParams.add("FROMMEMBER");
}
commandParams.add(encode(params.get(GeoSearchNode.Params.MEMBER)));
commandParams.add(encode(params.getMember()));
}
if (params.get(GeoSearchNode.Params.RADIUS) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
commandParams.add(params.get(GeoSearchNode.Params.RADIUS));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
if (params.getRadius() != null
&& params.getUnit() != null) {
commandParams.add(params.getRadius());
commandParams.add(params.getUnit());
}
if (params.get(GeoSearchNode.Params.HEIGHT) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
if (params.getHeight() != null
&& params.getUnit() != null) {
commandParams.add("BYBOX");
commandParams.add(params.get(GeoSearchNode.Params.WIDTH));
commandParams.add(params.get(GeoSearchNode.Params.HEIGHT));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
commandParams.add(params.getWidth());
commandParams.add(params.getHeight());
commandParams.add(params.getUnit());
if (params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getOrder() != null) {
commandParams.add(params.getOrder());
}
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null) {
if (params.getHeight() == null) {
commandParams.add("WITHCOORD");
}
if (params.get(GeoSearchNode.Params.COUNT) != null) {
if (params.getCount() != null) {
commandParams.add("COUNT");
commandParams.add(params.get(GeoSearchNode.Params.COUNT));
if (params.get(GeoSearchNode.Params.COUNT_ANY) != null) {
commandParams.add(params.getCount());
if (params.isCountAny()) {
commandParams.add("ANY");
}
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null
&& params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getHeight() == null
&& params.getOrder() != null) {
commandParams.add(params.getOrder());
}
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
commandParams.add("WITHCOORD");
}
@ -720,61 +717,60 @@ public class RedissonGeo<V> extends RedissonScoredSortedSet<V> implements RGeo<V
@Override
public RFuture<Long> storeSearchToAsync(String destName, GeoSearchArgs args) {
GeoSearchNode node = (GeoSearchNode) args;
Map<GeoSearchNode.Params, Object> params = node.getParams();
GeoSearchParams params = (GeoSearchParams) args;
List<Object> commandParams = new ArrayList<>();
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
commandParams.add(destName);
}
commandParams.add(getRawName());
RedisCommand command = null;
if (params.get(GeoSearchNode.Params.LATITUDE) != null
&& params.get(GeoSearchNode.Params.LONGITUDE) != null) {
if (params.getLatitude() != null
&& params.getLongitude() != null) {
command = RedisCommands.GEORADIUS_STORE;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = RedisCommands.GEOSEARCHSTORE_STORE;
commandParams.add("FROMLONLAT");
}
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LONGITUDE)));
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LATITUDE)));
commandParams.add(convert(params.getLongitude()));
commandParams.add(convert(params.getLatitude()));
}
if (params.get(GeoSearchNode.Params.MEMBER) != null) {
if (params.getMember() != null) {
command = RedisCommands.GEORADIUSBYMEMBER_STORE;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = RedisCommands.GEOSEARCHSTORE_STORE;
commandParams.add("FROMMEMBER");
}
commandParams.add(encode(params.get(GeoSearchNode.Params.MEMBER)));
commandParams.add(encode(params.getMember()));
}
if (params.get(GeoSearchNode.Params.RADIUS) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
commandParams.add(params.get(GeoSearchNode.Params.RADIUS));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
if (params.getRadius() != null
&& params.getUnit() != null) {
commandParams.add(params.getRadius());
commandParams.add(params.getUnit());
}
if (params.get(GeoSearchNode.Params.HEIGHT) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
if (params.getHeight() != null
&& params.getUnit() != null) {
commandParams.add("BYBOX");
commandParams.add(params.get(GeoSearchNode.Params.WIDTH));
commandParams.add(params.get(GeoSearchNode.Params.HEIGHT));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
commandParams.add(params.getWidth());
commandParams.add(params.getHeight());
commandParams.add(params.getUnit());
if (params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getOrder() != null) {
commandParams.add(params.getOrder());
}
}
if (params.get(GeoSearchNode.Params.COUNT) != null) {
if (params.getCount() != null) {
commandParams.add("COUNT");
commandParams.add(params.get(GeoSearchNode.Params.COUNT));
if (params.get(GeoSearchNode.Params.COUNT_ANY) != null) {
commandParams.add(params.getCount());
if (params.isCountAny()) {
commandParams.add("ANY");
}
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null
&& params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getHeight() == null
&& params.getOrder() != null) {
commandParams.add(params.getOrder());
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null) {
if (params.getHeight() == null) {
commandParams.add("STORE");
commandParams.add(destName);
}
@ -849,62 +845,61 @@ public class RedissonGeo<V> extends RedissonScoredSortedSet<V> implements RGeo<V
@Override
public RFuture<Long> storeSortedSearchToAsync(String destName, GeoSearchArgs args) {
GeoSearchNode node = (GeoSearchNode) args;
Map<GeoSearchNode.Params, Object> params = node.getParams();
GeoSearchParams params = (GeoSearchParams) args;
List<Object> commandParams = new ArrayList<>();
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
commandParams.add(destName);
}
commandParams.add(getRawName());
RedisCommand command = null;
if (params.get(GeoSearchNode.Params.LATITUDE) != null
&& params.get(GeoSearchNode.Params.LONGITUDE) != null) {
if (params.getLatitude() != null
&& params.getLongitude() != null) {
command = RedisCommands.GEORADIUS_STORE;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = RedisCommands.GEOSEARCHSTORE_STORE;
commandParams.add("FROMLONLAT");
}
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LONGITUDE)));
commandParams.add(convert((double) params.get(GeoSearchNode.Params.LATITUDE)));
commandParams.add(convert(params.getLongitude()));
commandParams.add(convert(params.getLatitude()));
}
if (params.get(GeoSearchNode.Params.MEMBER) != null) {
if (params.getMember() != null) {
command = RedisCommands.GEORADIUSBYMEMBER_STORE;
if (params.get(GeoSearchNode.Params.HEIGHT) != null) {
if (params.getHeight() != null) {
command = RedisCommands.GEOSEARCHSTORE_STORE;
commandParams.add("FROMMEMBER");
}
commandParams.add(encode(params.get(GeoSearchNode.Params.MEMBER)));
commandParams.add(encode(params.getMember()));
}
if (params.get(GeoSearchNode.Params.RADIUS) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
commandParams.add(params.get(GeoSearchNode.Params.RADIUS));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
if (params.getRadius() != null
&& params.getUnit() != null) {
commandParams.add(params.getRadius());
commandParams.add(params.getUnit());
}
if (params.get(GeoSearchNode.Params.HEIGHT) != null
&& params.get(GeoSearchNode.Params.UNIT) != null) {
if (params.getHeight() != null
&& params.getUnit() != null) {
commandParams.add("BYBOX");
commandParams.add(params.get(GeoSearchNode.Params.WIDTH));
commandParams.add(params.get(GeoSearchNode.Params.HEIGHT));
commandParams.add(params.get(GeoSearchNode.Params.UNIT));
commandParams.add(params.getWidth());
commandParams.add(params.getHeight());
commandParams.add(params.getUnit());
if (params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getOrder() != null) {
commandParams.add(params.getOrder());
}
}
if (params.get(GeoSearchNode.Params.COUNT) != null) {
if (params.getCount() != null) {
commandParams.add("COUNT");
commandParams.add(params.get(GeoSearchNode.Params.COUNT));
if (params.get(GeoSearchNode.Params.COUNT_ANY) != null) {
commandParams.add(params.getCount());
if (params.isCountAny()) {
commandParams.add("ANY");
}
}
if (params.get(GeoSearchNode.Params.HEIGHT) == null
&& params.get(GeoSearchNode.Params.ORDER) != null) {
commandParams.add(params.get(GeoSearchNode.Params.ORDER));
if (params.getHeight() == null
&& params.getOrder() != null) {
commandParams.add(params.getOrder());
}
commandParams.add("STOREDIST");
if (params.get(GeoSearchNode.Params.HEIGHT) == null) {
if (params.getHeight() == null) {
commandParams.add(destName);
}

@ -1,54 +0,0 @@
/**
* Copyright (c) 2013-2022 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.api.geo;
import org.redisson.api.GeoUnit;
import java.util.EnumMap;
import java.util.Map;
/**
* @author Nikita Koksharov
*/
class BaseGeoSearch implements ShapeGeoSearch {
private final Map<GeoSearchNode.Params, Object> params = new EnumMap<>(GeoSearchNode.Params.class);
BaseGeoSearch(Object member) {
params.put(GeoSearchNode.Params.MEMBER, member);
}
BaseGeoSearch(double longitude, double latitude) {
params.put(GeoSearchNode.Params.LONGITUDE, longitude);
params.put(GeoSearchNode.Params.LATITUDE, latitude);
}
@Override
public OptionalGeoSearch box(double width, double height, GeoUnit geoUnit) {
params.put(GeoSearchNode.Params.WIDTH, width);
params.put(GeoSearchNode.Params.HEIGHT, height);
params.put(GeoSearchNode.Params.UNIT, geoUnit);
return new BaseOptionalGeoSearch(params);
}
@Override
public OptionalGeoSearch radius(double radius, GeoUnit geoUnit) {
params.put(GeoSearchNode.Params.RADIUS, radius);
params.put(GeoSearchNode.Params.UNIT, geoUnit);
return new BaseOptionalGeoSearch(params);
}
}

@ -1,58 +0,0 @@
/**
* Copyright (c) 2013-2022 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.api.geo;
import org.redisson.api.GeoOrder;
import java.util.Map;
/**
* @author Nikita Koksharov
*/
class BaseOptionalGeoSearch implements OptionalGeoSearch, GeoSearchNode {
private final Map<Params, Object> params;
BaseOptionalGeoSearch(Map<Params, Object> params) {
this.params = params;
}
@Override
public OptionalGeoSearch count(int value) {
params.put(Params.COUNT, value);
params.remove(Params.COUNT_ANY);
return this;
}
@Override
public OptionalGeoSearch countAny(int value) {
params.put(Params.COUNT, value);
params.put(Params.COUNT_ANY, true);
return this;
}
@Override
public OptionalGeoSearch order(GeoOrder geoOrder) {
params.put(Params.ORDER, geoOrder);
return this;
}
@Override
public Map<Params, Object> getParams() {
return params;
}
}

@ -34,7 +34,7 @@ public interface GeoSearchArgs {
* @return search conditions object
*/
static <V> ShapeGeoSearch from(V member) {
return new BaseGeoSearch(member);
return new GeoSearchParams(member);
}
/**
@ -45,7 +45,7 @@ public interface GeoSearchArgs {
* @return search conditions object
*/
static ShapeGeoSearch from(double longitude, double latitude) {
return new BaseGeoSearch(longitude, latitude);
return new GeoSearchParams(longitude, latitude);
}
}

@ -1,31 +0,0 @@
/**
* Copyright (c) 2013-2022 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.api.geo;
import java.util.Map;
/**
* @author Nikita Koksharov
*/
public interface GeoSearchNode {
enum Params {
MEMBER, LONGITUDE, LATITUDE, WIDTH, HEIGHT, RADIUS, UNIT, COUNT, COUNT_ANY, ORDER
}
Map<Params, Object> getParams();
}

@ -0,0 +1,120 @@
/**
* Copyright (c) 2013-2022 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.api.geo;
import org.redisson.api.GeoOrder;
import org.redisson.api.GeoUnit;
/**
* @author Nikita Koksharov
*/
public class GeoSearchParams implements ShapeGeoSearch, OptionalGeoSearch {
private Object member;
private Double longitude;
private Double latitude;
private Double width;
private Double height;
private Double radius;
private GeoUnit unit;
private Integer count;
private boolean countAny;
private GeoOrder order;
GeoSearchParams(Object member) {
this.member = member;
}
GeoSearchParams(double longitude, double latitude) {
this.longitude = longitude;
this.latitude = latitude;
}
@Override
public OptionalGeoSearch box(double width, double height, GeoUnit geoUnit) {
this.width = width;
this.height = height;
this.unit = geoUnit;
return this;
}
@Override
public OptionalGeoSearch radius(double radius, GeoUnit geoUnit) {
this.radius = radius;
this.unit = geoUnit;
return this;
}
@Override
public OptionalGeoSearch count(int value) {
this.count = value;
this.countAny = false;
return this;
}
@Override
public OptionalGeoSearch countAny(int value) {
this.count = value;
this.countAny = true;
return this;
}
@Override
public OptionalGeoSearch order(GeoOrder value) {
this.order = value;
return this;
}
public Object getMember() {
return member;
}
public Double getLongitude() {
return longitude;
}
public Double getLatitude() {
return latitude;
}
public Double getWidth() {
return width;
}
public Double getHeight() {
return height;
}
public Double getRadius() {
return radius;
}
public GeoUnit getUnit() {
return unit;
}
public Integer getCount() {
return count;
}
public boolean isCountAny() {
return countAny;
}
public GeoOrder getOrder() {
return order;
}
}

@ -15,18 +15,6 @@ import static org.assertj.core.api.Assertions.assertThat;
public class RedissonGeoTest extends BaseTest {
@BeforeAll
public static void checkRedisVersion() throws IOException, InterruptedException {
boolean running = RedisRunner.isDefaultRedisServerInstanceRunning();
if (!running) {
RedisRunner.startDefaultRedisServerInstance();
}
Assumptions.assumeTrue(RedisRunner.getDefaultRedisServerInstance().getRedisVersion().compareTo("3.1.0") > 0);
if (!running) {
RedisRunner.shutDownDefaultRedisServerInstance();
}
}
@Test
public void testAdd() {
RGeo<String> geo = redisson.getGeo("test");

Loading…
Cancel
Save