Seems to me it would be sensible to replace the integer values in the FTPCommand class with an enum.
I propose creating a new enum class (called FTPCommands) which contains the enum and aliases. The existing FTPCommand class is then rewritten using the enum ordinals; and the FTP class is changed to use the enums internally. Existing public methods which use an integer for the command id are deprecated.
If there are any further commands added to the set lter, they should only be added to the enum, and no corresponding ints should be defined.
See attached patch (to follow). I've not fixed the FTP subclasses yet as I wanted to get agreement on the approach first.
Note that the new class name FTPCommands is very similar to the old class FTPCommand; of course that can be changed.