package hudson.plugins.emailext.groovy.sandbox; import javax.annotation.Nonnull; import java.io.PrintStream; import java.lang.reflect.Method; /** * {@link org.jenkinsci.plugins.scriptsecurity.sandbox.Whitelist} for a specific instance of {@link PrintStream}. */ public class PrintStreamInstanceWhitelist extends ObjectInstanceWhitelist<PrintStream> { public PrintStreamInstanceWhitelist(PrintStream instance) { super(instance); } @Override public boolean permitsMethod(@Nonnull Method method, @Nonnull Object receiver, @Nonnull Object[] args) { if (permitsInstance(receiver) && isClass(method.getDeclaringClass())) { String name = method.getName(); return name.equals("write") || name.equals("print") || name.equals("println") || name.equals("printf") || name.equals("format") || name.equals("append"); } return false; } }