Oops. I botched that, but it's never actually called (currently). The method is intended to return a string of the text for a FileNotFoundException since every command's text seems slightly different. The above base class was supposed to throw "not implemented", or return the string that got thrown. I munged it, but it's not called, so I'll fix it in the next refactored command review.
The end goal is "throw PathNotFoundException(path)" which will enforce a standard text message, and have a getter for the path. I intend to first refactor all FsShell commands. I can then universally change them all to use the new exception with just 2 LOC, and another jira to update all the hdfs tests.
I can see the wisdom of using a branch for larger features. Unfortunately in this case, code is being moved from a file into new files, which would make merges completely manual and error-prone. I also have someone waiting on my changes so they can add symlink support. Hence my hesitancy to use a branch...
Fix the usage text for ls.
Scrub out ls code and conditionals from FsShell, move to new subclass of FsCommand.
Add temporary "hack" to accomodate commands that don't throw the same text for a FileNotFoundException...
Add getter/setter for the recursive flag in Command class.