/** * GeDBIT.index.RangeQuery 2006.05.09 * * Copyright Information: * * Change Log: * 2006.05.09: Modified from the original GeDBIT package, ProximityPredicate.java, by Rui Mao */ package GeDBIT.index; import GeDBIT.type.IndexObject; /** * A range query. Given (q,r), the results should be all database points x such * that d(x,q) <= r * * @author Rui Mao, Willard * @version 2006.05.09 */ public class RangeQuery implements Query { /** * Initializes the range query object * * @param center * the {@link Object} that serves as the query object * @param radius * the search radius of the range query. **/ public RangeQuery(IndexObject center, double radius) { this(center, radius, 0); } public RangeQuery(IndexObject center, double radius, int listSize) { this(-1, center, radius, listSize); } public RangeQuery(int id, IndexObject center, double radius, int listSize) { if (radius < 0.0) throw new IllegalArgumentException("radius < 0: " + radius); if (listSize < 0) throw new IllegalArgumentException("max distance list size < 0: " + listSize); this.id = id; this.radius = radius; this.center = center; this.listSize = listSize; } /** * Return a reference to the query object * * @return a reference to the query object */ public IndexObject getQueryObject() { return center; } public int getId() { return id; } /** * Returns the search radius of the proximity query. */ final public double getRadius() { return radius; } public int getMaxDistanceListSize() { return listSize; } private double radius; private IndexObject center; private int listSize; private int id; }