import org.checkerframework.checker.tainting.qual.Untainted;
class CallsCheck {
public void testCall(String dirty, @Untainted String clean) {
sink(dirty); //warn
sink("");
sink(cleanMethod());
sink(publicMethod()); //warn
sink(publicFinalMethod());
sink(privateDirty(dirty)); //warn
sink(dirty.toLowerCase()); //warn
sink(dirty.getClass().getName());
sink(dirty.replace("1", "2")); //warn
sink(clean);
sink(clean.replace("1", dirty)); //warn
}
private String privateDirty(String dirty) {
return dirty;
}
public String publicMethod() {
return "1";
}
public final String publicFinalMethod() {
return "1";
}
private String cleanMethod() {
return "null";
}
public void sink(@Untainted String clean) {
}
}