class TextAnnotation extends AbstractAnnotation implements Serializable {

    @Override
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        }
        // now try to reject equality...
        if (!(obj instanceof TextAnnotation)) {
            return false;
        }
        TextAnnotation that = (TextAnnotation) obj;
        if (!ObjectUtils.equal(this.text, that.getText())) {
            return false;
        }
        if (!ObjectUtils.equal(this.font, that.getFont())) {
            return false;
        }
        if (!PaintUtils.equal(this.paint, that.getPaint())) {
            return false;
        }
        if (!ObjectUtils.equal(this.textAnchor, that.getTextAnchor())) {
            return false;
        }
        if (!ObjectUtils.equal(this.rotationAnchor,
                that.getRotationAnchor())) {
            return false;
        }
        if (this.rotationAngle != that.getRotationAngle()) {
            return false;
        }

        // seem to be the same...
        return true;

    }

    protected  TextAnnotation(String text);

}