refactoring
parent
318f11fea6
commit
2a8711e8d2
@ -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;
|
||||
}
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue