@Override public boolean exec() throws CliException { if (args.length < 2) { throw new MalformedCommandException(getUsageStr()); } String path = args[1]; boolean watch = cl.hasOption("w"); boolean withStat = cl.hasOption("s"); boolean recursive = cl.hasOption("R"); try { if (recursive) { ZKUtil.visitSubTreeDFS(zk, path, watch, new StringCallback() { @Override public void processResult(int rc, String path, Object ctx, String name) { out.println(path); } }); } else { Stat stat = withStat ? new Stat() : null; List<String> children = zk.getChildren(path, watch, stat); printChildren(children, stat); } } catch (IllegalArgumentException ex) { throw new MalformedPathException(ex.getMessage()); } catch (KeeperException|InterruptedException ex) { throw new CliWrapperException(ex); } return watch; }
ZKUtil.visitSubTreeDFS(zk, path, false, new StringCallback() { @Override public void processResult(int rc, String p, Object ctx, String name) {