class InvalidRunner extends AbstractRunner {

  String identifier;

  public InvalidRunner() {}

  public InvalidRunner(String identifier) {
    super();
    this.identifier = identifier;
  }

  public InvalidRunner(Class<? extends IRunner> cl) {
    this(cl.getName());
  }

  @Override
  public String getName() {<FILL_FUNCTION_BODY>}

  @Override
  public String[] getExtensions() {
    // TODO Auto-generated method stub
    return new String[]{};
  }

  public EffectiveRunner getEffectiveRunner(String script) {
    return new EffectiveRunner(this, null, false);
  }

  @Override
  public String getType() {
    return "invalid/" + identifier;
  }

  protected int doRunScript(String scriptfile, String[] scriptArgs, IRunner.Options options) {
    Debug.error("no runner available for: %s", new File(scriptfile).getName());
    return Runner.NOT_SUPPORTED;
  }
}

    if (null == identifier) {
      return "InvalidRunner";
    }
    return "InvalidRunner: " + identifier;
  
<methods>public non-sealed void <init>() ,public final void abort() ,public boolean canHandle(java.lang.String) ,public final boolean canHandleFileEnding(java.lang.String) ,public void checkAndSetConsole() ,public final void close() ,public boolean consoleChecked() ,public void consoleChecked(boolean) ,public final int evalScript(java.lang.String, org.sikuli.support.runner.IRunner.Options) ,public void execAfter(java.lang.String[]) ,public void execBefore(java.lang.String[]) ,public java.lang.String getDefaultExtension() ,public org.sikuli.support.runner.IRunner.EffectiveRunner getEffectiveRunner(java.lang.String) ,public java.lang.String[] getFileEndings() ,public final boolean hasExtension(java.lang.String) ,public final void init(java.lang.String[]) throws org.sikuli.script.SikuliXception,public boolean isAbortSupported() ,public final boolean isAborted() ,public final boolean isReady() ,public final boolean isRunning() ,public boolean isSupported() ,public final void redirect(java.io.PrintStream, java.io.PrintStream) ,public final void reset() ,public final void runLines(java.lang.String, org.sikuli.support.runner.IRunner.Options) ,public final int runScript(java.lang.String, java.lang.String[], org.sikuli.support.runner.IRunner.Options) ,public void setConsole(java.lang.Object) <variables>public static final int NOT_SUPPORTED,private static final java.util.concurrent.ScheduledExecutorService TIMEOUT_EXECUTOR,private static final java.lang.Object WORKER_LOCK,private boolean aborted,static ArrayList<java.lang.String> codeAfter,static ArrayList<java.lang.String> codeBefore,private java.lang.Object console,private boolean consoleChecked,private boolean ready,private boolean running,private static volatile java.lang.Thread worker