ClassBoundCriterion.java revision 10353ed766fc48a0af6bd33d934439e695c03e3
110353ed766fc48a0af6bd33d934439e695c03e3Mahmood Alipackage annotator.find;
210353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
310353ed766fc48a0af6bd33d934439e695c03e3Mahmood Aliimport annotations.el.BoundLocation;
410353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
510353ed766fc48a0af6bd33d934439e695c03e3Mahmood Aliimport com.sun.source.util.TreePath;
610353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
710353ed766fc48a0af6bd33d934439e695c03e3Mahmood Alipublic class ClassBoundCriterion implements Criterion {
810353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
910353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  private String className;
1010353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  private BoundLocation boundLoc;
1110353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  private Criterion notInMethodCriterion;
1210353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  private Criterion boundLocCriterion;
1310353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
1410353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  public ClassBoundCriterion(String className, BoundLocation boundLoc) {
1510353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    this.className = className;
1610353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    this.boundLoc = boundLoc;
1710353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    this.notInMethodCriterion = Criteria.notInMethod();
1810353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    this.boundLocCriterion = Criteria.atBoundLocation(boundLoc);
1910353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  }
2010353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
2110353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  public boolean isSatisfiedBy(TreePath path) {
2210353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    if (path == null) {
2310353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali      return false;
2410353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    }
2510353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
2610353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    return boundLocCriterion.isSatisfiedBy(path) &&
2710353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali      notInMethodCriterion.isSatisfiedBy(path);
2810353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  }
2910353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
3010353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  public Kind getKind() {
3110353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    return Kind.CLASS_BOUND;
3210353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  }
3310353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali
3410353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  public String toString() {
3510353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali    return "ClassBoundCriterion: for " + className + " at " + boundLoc;
3610353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali  }
3710353ed766fc48a0af6bd33d934439e695c03e3Mahmood Ali}
38