@Override public GeoResults<GeoLocation<byte[]>> decode(List<Object> parts, State state) { List<GeoResult<GeoLocation<byte[]>>> result = new ArrayList<GeoResult<GeoLocation<byte[]>>>(); for (Object object : parts) { List<Object> vals = ((List<Object>) object); GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])vals.get(0), (Point)vals.get(1)); result.add(new GeoResult<GeoLocation<byte[]>>(location, null)); } return new GeoResults<GeoLocation<byte[]>>(result); }
@Override public GeoResults<GeoLocation<byte[]>> decode(List<Object> parts, State state) { List<GeoResult<GeoLocation<byte[]>>> result = new ArrayList<GeoResult<GeoLocation<byte[]>>>(); for (Object object : parts) { List<Object> vals = ((List<Object>) object); GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])vals.get(0), (Point)vals.get(1)); result.add(new GeoResult<GeoLocation<byte[]>>(location, null)); } return new GeoResults<GeoLocation<byte[]>>(result); }
@Override public GeoResults<GeoLocation<byte[]>> convert(List<GeoRadiusResponse> source) { List<GeoResult<GeoLocation<byte[]>>> results = new ArrayList<>(source.size()); Converter<redis.clients.jedis.GeoRadiusResponse, GeoResult<GeoLocation<byte[]>>> converter = GeoResultConverterFactory.INSTANCE .forMetric(metric); for (GeoRadiusResponse result : source) { results.add(converter.convert(result)); } return new GeoResults<>(results, metric); } }
@Override public GeoResults<GeoLocation<byte[]>> convert(List<GeoWithin<byte[]>> source) { List<GeoResult<GeoLocation<byte[]>>> results = new ArrayList<>(source.size()); Converter<GeoWithin<byte[]>, GeoResult<GeoLocation<byte[]>>> converter = GeoResultConverterFactory.INSTANCE .forMetric(metric); for (GeoWithin<byte[]> result : source) { results.add(converter.convert(result)); } return new GeoResults<>(results, metric); } }
/** * Get {@link Converter} capable of {@link Set} of {@link Byte} into {@link GeoResults}. * * @return * @since 1.8 */ public static Converter<Set<byte[]>, GeoResults<GeoLocation<byte[]>>> bytesSetToGeoResultsConverter() { return source -> { if (CollectionUtils.isEmpty(source)) { return new GeoResults<>(Collections.<GeoResult<GeoLocation<byte[]>>> emptyList()); } List<GeoResult<GeoLocation<byte[]>>> results = new ArrayList<>(source.size()); Iterator<byte[]> it = source.iterator(); while (it.hasNext()) { results.add(new GeoResult<>(new GeoLocation<>(it.next(), null), new Distance(0D))); } return new GeoResults<>(results); }; }
@Override public GeoResults<GeoLocation<byte[]>> decode(List<Object> parts, State state) { List<GeoResult<GeoLocation<byte[]>>> result = new ArrayList<GeoResult<GeoLocation<byte[]>>>(); for (Object object : parts) { if (object instanceof List) { List<Object> vals = ((List<Object>) object); if (metric != null) { GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])vals.get(0), null); result.add(new GeoResult<GeoLocation<byte[]>>(location, new Distance((Double)vals.get(1), metric))); } else { GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])vals.get(0), (Point)vals.get(1)); result.add(new GeoResult<GeoLocation<byte[]>>(location, null)); } } else { GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])object, null); result.add(new GeoResult<GeoLocation<byte[]>>(location, new Distance(0))); } } return new GeoResults<GeoLocation<byte[]>>(result); }
@Override public GeoResults<GeoLocation<byte[]>> decode(List<Object> parts, State state) { List<GeoResult<GeoLocation<byte[]>>> result = new ArrayList<GeoResult<GeoLocation<byte[]>>>(); for (Object object : parts) { if (object instanceof List) { List<Object> vals = ((List<Object>) object); if (metric != null) { GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])vals.get(0), null); result.add(new GeoResult<GeoLocation<byte[]>>(location, new Distance((Double)vals.get(1), metric))); } else { GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])vals.get(0), (Point)vals.get(1)); result.add(new GeoResult<GeoLocation<byte[]>>(location, null)); } } else { GeoLocation<byte[]> location = new GeoLocation<byte[]>((byte[])object, null); result.add(new GeoResult<GeoLocation<byte[]>>(location, new Distance(0))); } } return new GeoResults<GeoLocation<byte[]>>(result); }
@Override public GeoResults<GeoLocation<V>> convert(GeoResults<GeoLocation<byte[]>> source) { List<GeoResult<GeoLocation<V>>> values = new ArrayList<>(source.getContent().size()); for (GeoResult<GeoLocation<byte[]>> value : source.getContent()) { values.add(new GeoResult<>( new GeoLocation<>(serializer.deserialize(value.getContent().getName()), value.getContent().getPoint()), value.getDistance())); } return new GeoResults<>(values, source.getAverageDistance().getMetric()); } }
return new GeoResults<>(result, near.getMetric()); return new GeoResults<>(result, new Distance(stats.getAverageDistance(), near.getMetric()));
return new GeoResults<>(result, near.getMetric()); return new GeoResults<>(result, new Distance(stats.getAverageDistance(), near.getMetric()));
@Override public Slice adapt(Invocation invocation, Object originalValue) { //noinspection unchecked return new GeoPage(new GeoResults(Collections.<GeoResult>emptyList())); }
@Override public Slice adapt(Invocation invocation, Object originalValue) { //noinspection unchecked return new GeoPage(new GeoResults(Collections.<GeoResult>emptyList())); }
@Override protected GeoPage doAdapt(Invocation invocation, Iterable iterable) { final List content = new ArrayList(); for (Object item : iterable) { //noinspection unchecked content.add(item); } //noinspection unchecked return new GeoPage(new GeoResults(content)); }
@Override protected GeoPage doAdapt(Invocation invocation, Iterable iterable) { final List content = new ArrayList(); for (Object item : iterable) { //noinspection unchecked content.add(item); } //noinspection unchecked return new GeoPage(new GeoResults(content)); }
@Override public GeoResults<GeoLocation<byte[]>> convert(List<GeoWithin<byte[]>> source) { List<GeoResult<GeoLocation<byte[]>>> results = new ArrayList<>(source.size()); Converter<GeoWithin<byte[]>, GeoResult<GeoLocation<byte[]>>> converter = GeoResultConverterFactory.INSTANCE .forMetric(metric); for (GeoWithin<byte[]> result : source) { results.add(converter.convert(result)); } return new GeoResults<>(results, metric); } }
@Override public GeoResults<GeoLocation<byte[]>> convert(List<GeoRadiusResponse> source) { List<GeoResult<GeoLocation<byte[]>>> results = new ArrayList<>(source.size()); Converter<redis.clients.jedis.GeoRadiusResponse, GeoResult<GeoLocation<byte[]>>> converter = GeoResultConverterFactory.INSTANCE .forMetric(metric); for (GeoRadiusResponse result : source) { results.add(converter.convert(result)); } return new GeoResults<>(results, metric); } }
@Override public GeoResults<GeoLocation<byte[]>> convert(List<GeoRadiusResponse> source) { List<GeoResult<GeoLocation<byte[]>>> results = new ArrayList<>(source.size()); Converter<redis.clients.jedis.GeoRadiusResponse, GeoResult<GeoLocation<byte[]>>> converter = GeoResultConverterFactory.INSTANCE .forMetric(metric); for (GeoRadiusResponse result : source) { results.add(converter.convert(result)); } return new GeoResults<>(results, metric); } }
@Override public GeoResults<GeoLocation<byte[]>> convert(List<GeoWithin<byte[]>> source) { List<GeoResult<GeoLocation<byte[]>>> results = new ArrayList<>(source.size()); Converter<GeoWithin<byte[]>, GeoResult<GeoLocation<byte[]>>> converter = GeoResultConverterFactory.INSTANCE .forMetric(metric); for (GeoWithin<byte[]> result : source) { results.add(converter.convert(result)); } return new GeoResults<>(results, metric); } }
@Override public GeoResults<GeoLocation<V>> convert(GeoResults<GeoLocation<byte[]>> source) { List<GeoResult<GeoLocation<V>>> values = new ArrayList<>(source.getContent().size()); for (GeoResult<GeoLocation<byte[]>> value : source.getContent()) { values.add(new GeoResult<>( new GeoLocation<>(serializer.deserialize(value.getContent().getName()), value.getContent().getPoint()), value.getDistance())); } return new GeoResults<>(values, source.getAverageDistance().getMetric()); } }
@Override public GeoResults<GeoLocation<V>> convert(GeoResults<GeoLocation<byte[]>> source) { List<GeoResult<GeoLocation<V>>> values = new ArrayList<>(source.getContent().size()); for (GeoResult<GeoLocation<byte[]>> value : source.getContent()) { values.add(new GeoResult<>( new GeoLocation<>(serializer.deserialize(value.getContent().getName()), value.getContent().getPoint()), value.getDistance())); } return new GeoResults<>(values, source.getAverageDistance().getMetric()); } }