package li.strolch.runtime.privilege; import li.strolch.privilege.handler.SystemUserAction; import li.strolch.privilege.model.PrivilegeContext; /** * {@link SystemUserAction} to run {@link Runnable} as a system user * * @author Robert von Burg <eitch@eitchnet.ch> * * @param <T> * @param <U> */ public class RunRunnable<T> extends SystemUserAction { private Runnable<T> runnable; private T result; public RunRunnable(Runnable<T> runnable) { this.runnable = runnable; } @Override public void execute(PrivilegeContext privilegeContext) { this.result = runnable.run(privilegeContext); } public T getResult() { return result; } public interface Runnable<T> { public T run(PrivilegeContext ctx); } }