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