package cse1030.test2;
import cse1030.drawing.Point2D;
/**
* A class for finding two dimensional points that match a point stored by a
* PointMatcher object.
*
* @author CSE1030_F13_14
*
*/
public class PointMatcher {
/**
* The point stored by the PointMatcher
*/
protected Point2D point;
/**
* Creates a PointMatcher object using the given point
* p. The point p is used by the matcher to define
* the matching criteria. This class matches points that are equal to
* p, but subclasses are expected to define different matching
* criteria.
*
* @param p
* the point to match
*/
public PointMatcher(Point2D p) {
this.point = new Point2D(p);
}
/**
* Get the point that this PointMatcher object uses to define the
* matching criteria. Clients cannot use this method to modify the point;
* clients must use setPoint to modify the point that this
* PointMatcher object matches.
*
* @return the point that this PointMatcher uses to define the
* matching criteria.
*/
public Point2D getPoint() {
return new Point2D(this.point);
}
/**
* Set the point that this PointMatcher object uses to define the
* matching criteria.
*
* @param p
* the point that this PointMatcher should use to define
* the matching criteria.
*/
public void setPoint(Point2D p) {
this.point = new Point2D(p);
}
/**
* Checks whether or not the point other matches the point held
* by this PointMatcher. This PointMatcher uses
* equals to determine if its point matches other,
* but subclasses of PointMatcher are expected to change this
* behavior.
*
* @param other
* the point to check for a match
* @return true if this PointMatcher's point is
* equal to other
*/
public boolean matches(Point2D other) {
return this.point.equals(other);
}
}