Refactoring list
The following refactoring operations have been automated in CodART. Click on refactoring name to see the API and code.
Table 1. Refactoring operations
| Refactoring | Definition | Entities | Roles |
|---|---|---|---|
| Move class | Move a class from a package to another | package class | source package, target package moved class |
| Move method | Move a method from a class to another. | class method | source class, target class moved method |
| Merge packages | Merge the elements of a set of packages in one of them | package | source package, target package |
| Extract/Split package | Add a package to compose the elements of another package | package | source package, target package |
| Extract class | Create a new class and move fields and methods from the old class to the new one | class method | source class, new class moved methods |
| Extract method | Extract a code fragment into a method | method statement | source method, new method moved statements |
| Inline class | Move all features of a class in another one and remove it | class | source class, target class |
| Move field | Move a field from a class to another | class field | source class, target class field |
| Push down field | Move a field of a superclass to a subclass | class field | super class, sub classes move field |
| Push down method | Move a method of a superclass to a subclass | class method | super class, sub classes moved method |
| Pull up field | Move a field from subclasses to the superclass | class field | sub classes, super class moved field |
| Pull up method | Move a method from subclasses to the superclass | class method | sub classes, super class moved method |
| Increase field visibility | Increase the visibility of a field from public to protected, protected to package or package to private | class field | source class source filed |
| Decrease field visibility | Decrease the visibility of a field from private to package, package to protected or protected to public | class field | source class source filed |
| Make field final | Make a non-final field final | class field | source class source filed |
| Make field non-final | Make a final field non-final | class field | source class source filed |
| Make field static | Make a non-static field static | class field | source class source filed |
| Make field non-static | Make a static field non-static | class field | source class source filed |
| Remove field | Remove a field from a class | class field | source class source filed |
| Increase method visibility | Increase the visibility of a method from public to protected, protected to package or package to private | class method | source class source method |
| Decrease method visibility | Decrease the visibility of a method from private to package, package to protected or protected to public | class method | source class source method |
| Make method final | Make a non-final method final | class method | source class source method |
| Make method non-final | Make a final method non-final | class method | source class source method |
| Make method static | Make a non-static method static | class method | source class source method |
| Make method non-static | Make a static method non-static | class method | source class source method |
| Remove method | Remove a method from a class | class method | source class source method |
| Make class-final | Make a non-final class final | class | source class |
| Make class non-final | Make a final class non-final | class | source class |
| Make class abstract | Change a concrete class to abstract | class | source class |
| Make class concrete | Change an abstract class to concrete | class | source class |
| Extract subclass | Create a subclass for a set of features | class method | source class, new subclass moved methods |
| Extract interface | Extract methods of a class into an interface | class method | source class, new interface interface methods |
| Inline method | Move the body of a method into its callers and remove the method | method | source method, callers method |
| Collapse hierarchy | Merge a superclass and a subclass | class | superclass, subclass |
| Remove control flag | Replace control flag with a break | class method | source class source method |
| Replace nested conditional with guard clauses | Replace nested conditional with guard clauses | class method | source class source method |
| Replace constructor with a factory function | Replace constructor with a factory function | class | source class |
| Replace exception with test | Replace exception with precheck | class method | source class source method |
| Rename field | Rename a field | class field | source class source filed |
| Rename method | Rename a method | class method | source class source method |
| Rename class | Rename a class | class | source class |
| Rename package | Rename a package | package | source package |
| Encapsulate field | Create setter/mutator and getter/accessor methods for a private field | class field | source class source filed |
| Replace parameter with query | Replace parameter with query | class method | source class source method |
| Pull up constructor body | Move the constructor | class method | subclass class, superclass constructor |
| Replace control flag with break | Replace control flag with break | class method | source class source method |
| Remove flag argument | Remove flag argument | class method | source class source method |
| Total | 47 | — | — |