test_class.declarator: testOutputBaseDir = new File("target/test-output/MainTest")
test_class.modifier: final
test_class.original_string: final File testOutputBaseDir = new File("target/test-output/MainTest");
test_class.type: File
test_class.var_name: testOutputBaseDir
test_class.declarator: cacheBaseDir = new File(testOutputBaseDir, "oakpal-cache")
test_class.modifier: final
test_class.original_string: final File cacheBaseDir = new File(testOutputBaseDir, "oakpal-cache");
test_class.type: File
test_class.var_name: cacheBaseDir
test_class.file: cli/src/test/java/net/adamcin/oakpal/cli/MainTest.java
test_class.identifier: MainTest
test_case.body: @Test
      public void testDefultPlanExecution() {
          Main.main(new String[0]);
      }
test_case.class_method_signature: MainTest.testDefultPlanExecution()
test_case.full_signature: @Test public void testDefultPlanExecution()
test_case.identifier: testDefultPlanExecution
test_case.invocations: main
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDefultPlanExecution()
focal_class.declarator: cwd
focal_class.modifier: private final
focal_class.original_string: private final File cwd;
focal_class.type: File
focal_class.var_name: cwd
focal_class.declarator: env
focal_class.modifier: private final
focal_class.original_string: private final Map<String, String> env;
focal_class.type: Map<String, String>
focal_class.var_name: env
focal_class.declarator: stdout
focal_class.modifier: private final
focal_class.original_string: private final PrintStream stdout;
focal_class.type: PrintStream
focal_class.var_name: stdout
focal_class.declarator: stderr
focal_class.modifier: private final
focal_class.original_string: private final PrintStream stderr;
focal_class.type: PrintStream
focal_class.var_name: stderr
focal_class.declarator: printers = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<File, DisposablePrinter> printers = new HashMap<>();
focal_class.type: Map<File, DisposablePrinter>
focal_class.var_name: printers
focal_class.declarator: DEFAULT_SWAP_OUT = err -> {
          final PrintStream out = System.out;
          System.setOut(err);
          return out;
      }
focal_class.modifier: static final
focal_class.original_string: static final Function<PrintStream, PrintStream> DEFAULT_SWAP_OUT = err -> {
          final PrintStream out = System.out;
          System.setOut(err);
          return out;
      };
focal_class.type: Function<PrintStream, PrintStream>
focal_class.var_name: DEFAULT_SWAP_OUT
focal_class.declarator: exitFunction = Runtime.getRuntime()::exit
focal_class.modifier: private static @NotNull
focal_class.original_string: private static @NotNull IntConsumer exitFunction = Runtime.getRuntime()::exit;
focal_class.type: IntConsumer
focal_class.var_name: exitFunction
focal_class.declarator: swapOutFunction = DEFAULT_SWAP_OUT
focal_class.modifier: private static @NotNull
focal_class.original_string: private static @NotNull Function<PrintStream, PrintStream> swapOutFunction = DEFAULT_SWAP_OUT;
focal_class.type: Function<PrintStream, PrintStream>
focal_class.var_name: swapOutFunction
focal_class.file: cli/src/main/java/net/adamcin/oakpal/cli/Main.java
focal_class.identifier: Main
focal_class.interfaces: implements Console
focal_class.class_method_signature: Main.Main(final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)
focal_class.full_signature:   Main(final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)
focal_class.identifier: Main
focal_class.parameters: (final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)
focal_class.signature:  Main(final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)
focal_class.class_method_signature: Main.getCwd()
focal_class.full_signature: @Override public @NotNull File getCwd()
focal_class.identifier: getCwd
focal_class.modifiers: @Override public @NotNull
focal_class.parameters: ()
focal_class.return: File
focal_class.signature: File getCwd()
focal_class.class_method_signature: Main.getEnv()
focal_class.full_signature: @Override public @NotNull Map<String, String> getEnv()
focal_class.identifier: getEnv
focal_class.modifiers: @Override public @NotNull
focal_class.parameters: ()
focal_class.return: Map<String, String>
focal_class.signature: Map<String, String> getEnv()
focal_class.class_method_signature: Main.printLine(final @NotNull Object object)
focal_class.full_signature: @Override public IO<Nothing> printLine(final @NotNull Object object)
focal_class.identifier: printLine
focal_class.modifiers: @Override public
focal_class.parameters: (final @NotNull Object object)
focal_class.return: IO<Nothing>
focal_class.signature: IO<Nothing> printLine(final @NotNull Object object)
focal_class.class_method_signature: Main.printLineErr(final Object object)
focal_class.full_signature: @Override public IO<Nothing> printLineErr(final Object object)
focal_class.identifier: printLineErr
focal_class.modifiers: @Override public
focal_class.parameters: (final Object object)
focal_class.return: IO<Nothing>
focal_class.signature: IO<Nothing> printLineErr(final Object object)
focal_class.class_method_signature: Main.openPrinter(final @NotNull File outFile)
focal_class.full_signature: @Override public Result<DisposablePrinter> openPrinter(final @NotNull File outFile)
focal_class.identifier: openPrinter
focal_class.modifiers: @Override public
focal_class.parameters: (final @NotNull File outFile)
focal_class.return: Result<DisposablePrinter>
focal_class.signature: Result<DisposablePrinter> openPrinter(final @NotNull File outFile)
focal_class.class_method_signature: Main.dispose()
focal_class.full_signature: @Override public void dispose()
focal_class.identifier: dispose
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dispose()
focal_class.class_method_signature: Main.doMain(final @NotNull String[] args)
focal_class.full_signature:  int doMain(final @NotNull String[] args)
focal_class.identifier: doMain
focal_class.parameters: (final @NotNull String[] args)
focal_class.return: int
focal_class.signature: int doMain(final @NotNull String[] args)
focal_class.class_method_signature: Main.setExitFunction(final @NotNull IntConsumer exitFunction)
focal_class.full_signature: public static void setExitFunction(final @NotNull IntConsumer exitFunction)
focal_class.identifier: setExitFunction
focal_class.modifiers: public static
focal_class.parameters: (final @NotNull IntConsumer exitFunction)
focal_class.return: void
focal_class.signature: void setExitFunction(final @NotNull IntConsumer exitFunction)
focal_class.class_method_signature: Main.setSwapOutFunction(final @NotNull Function<PrintStream, PrintStream> swapOutFunction)
focal_class.full_signature: public static void setSwapOutFunction(final @NotNull Function<PrintStream, PrintStream> swapOutFunction)
focal_class.identifier: setSwapOutFunction
focal_class.modifiers: public static
focal_class.parameters: (final @NotNull Function<PrintStream, PrintStream> swapOutFunction)
focal_class.return: void
focal_class.signature: void setSwapOutFunction(final @NotNull Function<PrintStream, PrintStream> swapOutFunction)
focal_class.class_method_signature: Main.main(final String[] args)
focal_class.full_signature: public static void main(final String[] args)
focal_class.identifier: main
focal_class.modifiers: public static
focal_class.parameters: (final String[] args)
focal_class.return: void
focal_class.signature: void main(final String[] args)
focal_method.body: Main(final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr) {
          this.cwd = cwd;
          this.env = env;
          this.stdout = stdout;
          this.stderr = stderr;
      }
focal_method.class_method_signature: Main.Main(final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)
focal_method.full_signature:   Main(final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)
focal_method.identifier: Main
focal_method.parameters: (final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)
focal_method.signature:  Main(final @NotNull File cwd,
           final @NotNull Map<String, String> env,
           final @NotNull PrintStream stdout,
           final @NotNull PrintStream stderr)