cs132.util
Class CommandLineLauncher

java.lang.Object
  extended by cs132.util.CommandLineLauncher

public abstract class CommandLineLauncher
extends Object

A helper for writing command-line entrypoints. For example:

 import cs132.util.CommandLineLauncher;
 import cs132.util.CommandLineLauncher.Exit;

 public class FileChanger extends CommandLineLauncher.TextOutput
 {
    // Your 'main' method should just call CommandLineLauncher.run(...), which
    // will set things up and then call your 'run' method.
    public static void main(String[] args)
    {
       CommandLineLauncher.run(new FileChanger(), args);
    }

    // Your 'run' method is now the program entrypoint.
    public void run(PrintWriter out, InputStream in, PrintWriter err, String[] args)
       throws Exit  // 'throws' clause just for documentation purposes
    {
       // ...
    }
 }
 

Don't ever call System.exit(...). Instead, do:

 if (somethingBadHappened) throw exit(5);
 

This allows 'finally' blocks to happen, which, among other things, allows the CommandLineLauncher to flush your stdout and stderr streams (otherwise, you'll be missing output).


Nested Class Summary
static class CommandLineLauncher.Exit
           
static class CommandLineLauncher.RawOutput
           
static class CommandLineLauncher.TextOutput
           
 
Method Summary
static void run(CommandLineLauncher.RawOutput launcher, String[] args)
           
static void run(CommandLineLauncher.TextOutput launcher, String[] args)
          Equivalent to: run(launcher, args, true, true)
static void run(CommandLineLauncher.TextOutput launcher, String[] args, boolean flushOut, boolean flushErr)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

run

public static void run(CommandLineLauncher.RawOutput launcher,
                       String[] args)

run

public static void run(CommandLineLauncher.TextOutput launcher,
                       String[] args,
                       boolean flushOut,
                       boolean flushErr)
Parameters:
args - The command-line arguments.
flushOut - Whether the standard output stream should be set to autoflush.
flushErr - Whether the standard output stream should be set to autoflush.
See Also:
PrintWriter autoflush

run

public static void run(CommandLineLauncher.TextOutput launcher,
                       String[] args)
Equivalent to: run(launcher, args, true, true)