Currently, it supports the detection of the following refactorings:
supported by RefactoringMiner 1.0 and newer versions
- Extract Method
- Inline Method
- Rename Method
- Move Method
- Move Attribute
- Pull Up Method
- Pull Up Attribute
- Push Down Method
- Push Down Attribute
- Extract Superclass
- Extract Interface
- Move Class
- Rename Class
- Extract and Move Method
- Rename Package
Change Package (Move, Rename, Split, Merge)
supported by RefactoringMiner 2.0 and newer versions
- Move and Rename Class
- Extract Class
- Extract Subclass
- Extract Variable
- Inline Variable
- Parameterize Variable
- Rename Variable
- Rename Parameter
- Rename Attribute
- Move and Rename Attribute
- Replace Variable with Attribute
- Replace Attribute (with Attribute)
- Merge Variable
- Merge Parameter
- Merge Attribute
- Split Variable
- Split Parameter
- Split Attribute
- Change Variable Type
- Change Parameter Type
- Change Return Type
- Change Attribute Type
- Extract Attribute
- Move and Rename Method
- Move and Inline Method
supported by RefactoringMiner 2.1 and newer versions
- Add Method Annotation
- Remove Method Annotation
- Modify Method Annotation
- Add Attribute Annotation
- Remove Attribute Annotation
- Modify Attribute Annotation
- Add Class Annotation
- Remove Class Annotation
- Modify Class Annotation
- Add Parameter Annotation
- Remove Parameter Annotation
- Modify Parameter Annotation
- Add Variable Annotation
- Remove Variable Annotation
- Modify Variable Annotation
- Add Parameter
- Remove Parameter
- Reorder Parameter
- Add Thrown Exception Type
- Remove Thrown Exception Type
- Change Thrown Exception Type
- Change Method Access Modifier
supported by RefactoringMiner 2.2 and newer versions
- Change Attribute Access Modifier
- Encapsulate Attribute
- Parameterize Attribute
- Replace Attribute with Variable
- Add Method Modifier (
final,static,abstract,synchronized) - Remove Method Modifier (
final,static,abstract,synchronized) - Add Attribute Modifier (
final,static,transient,volatile) - Remove Attribute Modifier (
final,static,transient,volatile) - Add Variable Modifier (
final) - Add Parameter Modifier (
final) - Remove Variable Modifier (
final) - Remove Parameter Modifier (
final) - Change Class Access Modifier
- Add Class Modifier (
final,static,abstract) - Remove Class Modifier (
final,static,abstract) - Move Package
- Split Package
- Merge Package
- Localize Parameter
- Change Type Declaration Kind (
class,interface,enum,annotation,record) - Collapse Hierarchy
- Replace Loop with Pipeline
- Replace Anonymous with Lambda
supported by RefactoringMiner 2.3 and newer versions
- Merge Class
- Inline Attribute
- Replace Pipeline with Loop
supported by RefactoringMiner 2.4 and newer versions
- Split Class
- Split Conditional
- Invert Condition
- Merge Conditional
- Merge Catch
- Merge Method
- Split Method
supported by RefactoringMiner 3.0 and newer versions
- Move Code (between methods)
- Replace Anonymous with Class
- Parameterize Test (JUnit 5 @ParameterizedTest with @ValueSource)
- Assert Throws
- Replace Generic With Diamond
- Try With Resources
- Replace Conditional With Ternary
- Assert Timeout
- Replace Conditional with Assumption
- Extract Fixture