<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (version 1.7.0_80) on Tue Feb 13 20:01:23 JST 2018 --> <title>CommandLine.RunLast (picocli 2.3.0 API)</title> <meta name="date" content="2018-02-13"> <link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> </head> <body> <script type="text/javascript"><!-- if (location.href.indexOf('is-external=true') == -1) { parent.document.title="CommandLine.RunLast (picocli 2.3.0 API)"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar_top"> <!-- --> </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../deprecated-list.html">Deprecated</a></li> <li><a href="../index-all.html">Index</a></li> <li><a href="../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../picocli/CommandLine.RunFirst.html" title="class in picocli"><span class="strong">Prev Class</span></a></li> <li><a href="../picocli/CommandLine.TypeConversionException.html" title="class in picocli"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../index.html?picocli/CommandLine.RunLast.html" target="_top">Frames</a></li> <li><a href="CommandLine.RunLast.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_top"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor_summary">Constr</a> | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor_detail">Constr</a> | </li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> <!-- ======== START OF CLASS DATA ======== --> <div class="header"> <div class="subTitle">picocli</div> <h2 title="Class CommandLine.RunLast" class="title">Class CommandLine.RunLast</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>picocli.CommandLine.RunLast</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt>All Implemented Interfaces:</dt> <dd><a href="../picocli/CommandLine.IParseResultHandler.html" title="interface in picocli">CommandLine.IParseResultHandler</a></dd> </dl> <dl> <dt>Enclosing class:</dt> <dd><a href="../picocli/CommandLine.html" title="class in picocli">CommandLine</a></dd> </dl> <hr> <br> <pre>public static class <span class="strong">CommandLine.RunLast</span> extends java.lang.Object implements <a href="../picocli/CommandLine.IParseResultHandler.html" title="interface in picocli">CommandLine.IParseResultHandler</a></pre> <div class="block">Command line parse result handler that prints help if requested, and otherwise executes the most specific <code>Runnable</code> or <code>Callable</code> subcommand. For use in the <a href="../picocli/CommandLine.html#parseWithHandlers(picocli.CommandLine.IParseResultHandler,%20java.io.PrintStream,%20picocli.CommandLine.Help.Ansi,%20picocli.CommandLine.IExceptionHandler,%20java.lang.String...)"><code>parseWithHandler</code></a> methods. <p> Something like this:</p> <pre> // RunLast implementation: print help if requested, otherwise execute the most specific subcommand if (CommandLine.printHelpIfRequested(parsedCommands, System.err, Help.Ansi.AUTO)) { return emptyList(); } CommandLine last = parsedCommands.get(parsedCommands.size() - 1); Object command = last.getCommand(); if (command instanceof Runnable) { try { ((Runnable) command).run(); } catch (Exception ex) { throw new ExecutionException(last, "Error in runnable " + command, ex); } } else if (command instanceof Callable) { Object result; try { result = ((Callable) command).call(); } catch (Exception ex) { throw new ExecutionException(last, "Error in callable " + command, ex); } // ...do something with result } else { throw new ExecutionException(last, "Parsed command (" + command + ") is not Runnable or Callable"); } </pre></div> <dl><dt><span class="strong">Since:</span></dt> <dd>2.0</dd></dl> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> <caption><span>Constructors</span><span class="tabEnd"> </span></caption> <tr> <th class="colOne" scope="col">Constructor and Description</th> </tr> <tr class="altColor"> <td class="colOne"><code><strong><a href="../picocli/CommandLine.RunLast.html#CommandLine.RunLast()">CommandLine.RunLast</a></strong>()</code> </td> </tr> </table> </li> </ul> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method_summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span>Methods</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>java.util.List<java.lang.Object></code></td> <td class="colLast"><code><strong><a href="../picocli/CommandLine.RunLast.html#handleParseResult(java.util.List,%20java.io.PrintStream,%20picocli.CommandLine.Help.Ansi)">handleParseResult</a></strong>(java.util.List<<a href="../picocli/CommandLine.html" title="class in picocli">CommandLine</a>> parsedCommands, java.io.PrintStream out, <a href="../picocli/CommandLine.Help.Ansi.html" title="enum in picocli">CommandLine.Help.Ansi</a> ansi)</code> <div class="block">Prints help if requested, and otherwise executes the most specific <code>Runnable</code> or <code>Callable</code> subcommand.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class java.lang.Object</h3> <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ========= CONSTRUCTOR DETAIL ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a name="CommandLine.RunLast()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>CommandLine.RunLast</h4> <pre>public CommandLine.RunLast()</pre> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method_detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="handleParseResult(java.util.List, java.io.PrintStream, picocli.CommandLine.Help.Ansi)"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>handleParseResult</h4> <pre>public java.util.List<java.lang.Object> handleParseResult(java.util.List<<a href="../picocli/CommandLine.html" title="class in picocli">CommandLine</a>> parsedCommands, java.io.PrintStream out, <a href="../picocli/CommandLine.Help.Ansi.html" title="enum in picocli">CommandLine.Help.Ansi</a> ansi)</pre> <div class="block">Prints help if requested, and otherwise executes the most specific <code>Runnable</code> or <code>Callable</code> subcommand. If the last (sub)command does not implement either <code>Runnable</code> or <code>Callable</code>, a <code>ExecutionException</code> is thrown detailing the problem and capturing the offending <code>CommandLine</code> object.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code><a href="../picocli/CommandLine.IParseResultHandler.html#handleParseResult(java.util.List,%20java.io.PrintStream,%20picocli.CommandLine.Help.Ansi)">handleParseResult</a></code> in interface <code><a href="../picocli/CommandLine.IParseResultHandler.html" title="interface in picocli">CommandLine.IParseResultHandler</a></code></dd> <dt><span class="strong">Parameters:</span></dt><dd><code>parsedCommands</code> - the <code>CommandLine</code> objects that resulted from successfully parsing the command line arguments</dd><dd><code>out</code> - the <code>PrintStream</code> to print help to if requested</dd><dd><code>ansi</code> - for printing help messages using ANSI styles and colors</dd> <dt><span class="strong">Returns:</span></dt><dd>an empty list if help was requested, or a list containing a single element: the result of calling the <code>Callable</code>, or a <code>null</code> element if the last (sub)command was a <code>Runnable</code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code><a href="../picocli/CommandLine.ExecutionException.html" title="class in picocli">CommandLine.ExecutionException</a></code> - if a problem occurred while processing the parse results; use <a href="../picocli/CommandLine.ExecutionException.html#getCommandLine()"><code>CommandLine.ExecutionException.getCommandLine()</code></a> to get the command or subcommand where processing failed</dd></dl> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar_bottom"> <!-- --> </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../deprecated-list.html">Deprecated</a></li> <li><a href="../index-all.html">Index</a></li> <li><a href="../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../picocli/CommandLine.RunFirst.html" title="class in picocli"><span class="strong">Prev Class</span></a></li> <li><a href="../picocli/CommandLine.TypeConversionException.html" title="class in picocli"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../index.html?picocli/CommandLine.RunLast.html" target="_top">Frames</a></li> <li><a href="CommandLine.RunLast.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_bottom"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor_summary">Constr</a> | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor_detail">Constr</a> | </li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> </body> </html>