Package org.sonar.java.checks.regex
Class AbstractRegexCheckTrackingMatchers
java.lang.Object
org.sonar.java.ast.visitors.SubscriptionVisitor
org.sonar.plugins.java.api.IssuableSubscriptionVisitor
org.sonar.java.checks.regex.AbstractRegexCheck
org.sonar.java.checks.regex.AbstractRegexCheckTrackingMatchers
- All Implemented Interfaces:
RegexCheck,JavaCheck,JavaFileScanner
- Direct Known Subclasses:
AbstractRegexCheckTrackingMatchType,UnusedGroupNamesCheck
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.sonar.java.regex.RegexCheck
RegexCheck.RegexIssueLocation -
Field Summary
Fields inherited from class org.sonar.java.checks.regex.AbstractRegexCheck
JAVA_LANG_STRING, LANG3_REGEX_UTILS, METHODS_IMPLYING_DOT_ALL_FLAG, REGEX_METHODS, REGEX_ON_THE_SECOND_ARGUMENT_METHODSFields inherited from class org.sonar.java.ast.visitors.SubscriptionVisitor
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckRegex(org.sonarsource.analyzer.commons.regex.RegexParseResult regexForLiterals, ExpressionTree methodInvocationOrAnnotation) protected abstract voidcheckRegex(org.sonarsource.analyzer.commons.regex.RegexParseResult regexForLiterals, ExpressionTree methodInvocationOrAnnotation, List<MethodInvocationTree> trackedMethodsCalled, boolean didEscape) voidprotected voidprotected abstract MethodMatchersThe methods for which we want to know whether they're invoked on the given regex.voidMethods inherited from class org.sonar.java.checks.regex.AbstractRegexCheck
filterAnnotation, getFinalVariableInitializer, getFlagsTree, getLiterals, getMethodInvocationMatchers, getRegexLiteralExpression, methodOrAnnotationName, onAnnotationFound, regexForLiterals, reportIssue, reportIssue, reportIssueFromCommons, setContextMethods inherited from class org.sonar.plugins.java.api.IssuableSubscriptionVisitor
addIssue, addIssueOnFile, reportIssue, reportIssue, reportIssue, scanTreeMethods inherited from class org.sonar.java.ast.visitors.SubscriptionVisitor
leaveFile, scanFile, visitToken, visitTriviaMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.sonar.plugins.java.api.JavaFileScanner
scanWithoutParsing
-
Constructor Details
-
AbstractRegexCheckTrackingMatchers
public AbstractRegexCheckTrackingMatchers()
-
-
Method Details
-
trackedMethodMatchers
The methods for which we want to know whether they're invoked on the given regex. These should either be methods of the Pattern or Matcher class or part of REGEX_METHODS. -
checkRegex
protected abstract void checkRegex(org.sonarsource.analyzer.commons.regex.RegexParseResult regexForLiterals, ExpressionTree methodInvocationOrAnnotation, List<MethodInvocationTree> trackedMethodsCalled, boolean didEscape) - Parameters:
regexForLiterals- The regex to be checkedmethodInvocationOrAnnotation- The method invocation or annotation that the regex string is passed totrackedMethodsCalled- The list of method invocations performed on the Pattern or Matcher object associated with the regex (only taking into account methods returned by trackedMethodMatchers)didEscape- Whether or not the regex escaped the method in which it was created (via return, being assigned to a non-local variable or being passed to a different method). If true, trackedMethodsCalled may not be exhaustive.
-
nodesToVisit
- Overrides:
nodesToVisitin classAbstractRegexCheck
-
leaveNode
- Overrides:
leaveNodein classSubscriptionVisitor
-
visitNode
- Overrides:
visitNodein classAbstractRegexCheck
-
onMethodInvocationFound
- Overrides:
onMethodInvocationFoundin classAbstractRegexCheck
-
checkRegex
public void checkRegex(org.sonarsource.analyzer.commons.regex.RegexParseResult regexForLiterals, ExpressionTree methodInvocationOrAnnotation) - Specified by:
checkRegexin classAbstractRegexCheck
-