<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">Greet</span> {
<span class="hljs-keyword">public</span> Either<Integer, String> <span class="hljs-title function_">f</span><span class="hljs-params">(<span class="hljs-type">int</span> val)</span> {
<span class="hljs-keyword">new</span> <span class="hljs-title class_">Type</span>();
<span class="hljs-keyword">if</span> (val) {
<span class="hljs-keyword">return</span> getType();
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (!val) {
<span class="hljs-keyword">throw</span> getError();
}
}
}
<span class="hljs-keyword">sealed</span> <span class="hljs-keyword">interface</span> <span class="hljs-title class_">Command</span> permits LoginCommand {
<span class="hljs-keyword">void</span> <span class="hljs-title function_">run</span><span class="hljs-params">()</span>;
}
<span class="hljs-keyword">non-sealed</span> <span class="hljs-keyword">abstract</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">UserPluginCommand</span> <span class="hljs-keyword">extends</span> <span class="hljs-title class_">Command</span> {
<span class="hljs-keyword">void</span> <span class="hljs-title function_">runAsUser</span><span class="hljs-params">()</span>;
}