RefactoringTools ist eine God Class (1787 Zeilen) #30
Labels
No labels
bug
build
enhancement
headless
P1-critical
P2-high
P3-medium
P4-low
refactoring
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ai-tools/jdt-mcp-server#30
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
RefactoringTools.javaenthält 9 verschiedene Refactoring-Tools in einer einzigen Klasse mit 1787 Zeilen. Das erschwert Wartbarkeit, Testbarkeit und Verständlichkeit.Enthaltene Tools
renameElement(170 Zeilen + Hilfsmethoden)extractMethodmoveTypeorganizeImportsinlineElementextractInterfacechangeMethodSignatureconvertToLambdaencapsulateFieldintroduceParameterVorgeschlagener Fix
Aufteilen in separate Klassen, z.B.:
RenameRefactoring.javaExtractRefactoring.javaMoveRefactoring.javaImportOrganizer.javaGemeinsame Hilfsmethoden (
describeChange,getRealErrors,findElement) in eineRefactoringSupport-Utility-Klasse extrahieren.Kontext
Identifiziert bei der Architektur-Analyse durch Agent jdt-gamma (Erich Gamma).
RefactoringTools von 2085 auf 886 Zeilen reduziert (-57%) in 3 Phasen:
Phase 1:
RefactoringSupport— 8 gemeinsame Helper (findElement, findTypeInSourceProject, getRealErrors, etc.)Phase 2:
RenameRefactoring— Rename-Logik (Processor + AST-Fallback)Phase 3:
ImportOrganizer,ExtractInterfaceRefactoring,ConvertToLambdaRefactoringVerbleibende 6 Tools in RefactoringTools: extractMethod, moveType, inline, changeMethodSignature, encapsulateField, introduceParameter. Weitere Extraktion bei Bedarf möglich.
AI-HINT im Class-Comment ergänzt für zukünftige Modularisierung.