Class Heuristics
- java.lang.Object
 - 
- org.checkerframework.framework.util.Heuristics
 
 
- 
public class Heuristics extends java.lang.ObjectUtilities for determining tree-based heuristics.For an example, see
org.checkerframework.checker.interning.InterningVisitor. 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classHeuristics.MatcherA base class for tree-matching algorithms.static classHeuristics.OfKindmatch()returns true if called on a path whose leaf has the given kind (supplied at object initialization).static classHeuristics.OrMatchermatch()returns true if any of the given matchers returns true.static classHeuristics.PreceededBystatic classHeuristics.Withinmatch()returns true if called on a path, any element of which matches the given matcher (supplied at object initialization).static classHeuristics.WithinTrueBranchmatch()returns true if called on a path whose leaf is within the "then" clause of an if whose condition matches the matcher (supplied at object initialization). 
- 
Constructor Summary
Constructors Constructor Description Heuristics() 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static booleanmatchParents(com.sun.source.util.TreePath path, com.sun.source.tree.Tree.Kind... kinds)Returns true if a tree has a particular set of direct parents, ignoring blocks and parentheses. 
 - 
 
- 
- 
Method Detail
- 
matchParents
public static boolean matchParents(com.sun.source.util.TreePath path, com.sun.source.tree.Tree.Kind... kinds)Returns true if a tree has a particular set of direct parents, ignoring blocks and parentheses.For example, to test whether an expression (specified by
path) is immediately contained by an if statement which is immediately contained in a method, one would invoke:matchParents(path, Kind.IF, Tree.Kind.METHOD)
- Parameters:
 path- the path to matchkinds- the tree kinds to match against, in ascending order starting from the desired kind of the parent- Returns:
 - true if the tree path matches the desired kinds, skipping blocks and parentheses, for as many kinds as specified
 
 
 - 
 
 -