"$Proxy*" //
};
public MethodCriteria build(String agentArg) {
AndMethodCriteria and = new AndMethodCriteria();
if (agentArg != null) {
int xindex = agentArg.indexOf("!");
if (xindex != -1) {
// this is a "!" so there is an exclude
String includeString = agentArg.substring(0, xindex);
String excludeString = agentArg.substring(xindex + 1);
if (includeString.length() > 0) {
// there is also an include
Matcher matcher = CompositeMatcher.buildCompositeGlobMatcher(includeString);
and.addCriteria(new ClassMatcherMethodCriteria(matcher));
}
Matcher matcher = CompositeMatcher.buildCompositeGlobMatcher(excludeString);
and.addCriteria(new NotMethodCriteria(new ClassMatcherMethodCriteria(matcher)));
} else {
// there is *only* an include
Matcher matcher = CompositeMatcher.buildCompositeGlobMatcher(agentArg);
and.addCriteria(new ClassMatcherMethodCriteria(matcher));
}
}
if (Settings.isInjectorDefaultExcludesEnabled()) {
Matcher matcher = CompositeMatcher.buildCompositeGlobMatcher(DEFAULT_EXCLUDES);
and.addCriteria(new NotMethodCriteria(new ClassMatcherMethodCriteria(matcher)));
}
return and;
}