I have designed a command framework for making creation commands faster. than rather losting time registering them thru plugin.yml, configuring all their permission, child permissions, etc. So for working i created the next structure of code:
Command contains the fields-getters-setters (name, alias, permission, description and usage)
SingleCommand representing a simple command, like does the CommandExecutor from Bukkit
ParentCommand representing a group of associated commands, meaning that they can contain SingleCommand or SingleCommand.