Command-line interface (CLI) for CodART
The problem There is no unified interface for the CodART project. As the CodART project is developed and the number of features is increased, it is vital to have an interface to interact with this framework especially for ad-hoc use and testing. Currently, the project contains several main files which are confusing. None of them implement a standard interface.
Describe the solution you'd like
A primary solution is to implement a command-line interface (CLI).
The CLI can be added to the main module in the projects' root. For example, to apply a specific refactoring to a given Java project the following command would be nice:
codart --refactoring "encapsulate_field" --project "./P1" --long_class_name "A" --feild_name "f" --refactored_project "./P2"
Alternatives solution There are other alternative solutions that are more suitable for future development:
- A graphical user interface (GUI)
- Web user interface or rich internet application (RIA)
- Python APIs
Additional context The important problem to consider is that the CLI must be as standard and comprehensive as possible. It could be changeable and understandable. For example, have comprehensive help (-h switch, etc.) and documentation. Table 1 of the project documentation defines all required arguments for each refactoring which should be considered when developing the CLI.