RefactoringTools ist eine God Class (1787 Zeilen) #30

Closed
opened 2026-03-08 09:25:57 +00:00 by automation · 1 comment
Collaborator

Problem

RefactoringTools.java enthält 9 verschiedene Refactoring-Tools in einer einzigen Klasse mit 1787 Zeilen. Das erschwert Wartbarkeit, Testbarkeit und Verständlichkeit.

Enthaltene Tools

  1. renameElement (170 Zeilen + Hilfsmethoden)
  2. extractMethod
  3. moveType
  4. organizeImports
  5. inlineElement
  6. extractInterface
  7. changeMethodSignature
  8. convertToLambda
  9. encapsulateField
  10. introduceParameter

Vorgeschlagener Fix

Aufteilen in separate Klassen, z.B.:

  • RenameRefactoring.java
  • ExtractRefactoring.java
  • MoveRefactoring.java
  • ImportOrganizer.java
  • etc.

Gemeinsame Hilfsmethoden (describeChange, getRealErrors, findElement) in eine RefactoringSupport-Utility-Klasse extrahieren.

Kontext

Identifiziert bei der Architektur-Analyse durch Agent jdt-gamma (Erich Gamma).

## Problem `RefactoringTools.java` enthält 9 verschiedene Refactoring-Tools in einer einzigen Klasse mit 1787 Zeilen. Das erschwert Wartbarkeit, Testbarkeit und Verständlichkeit. ## Enthaltene Tools 1. `renameElement` (170 Zeilen + Hilfsmethoden) 2. `extractMethod` 3. `moveType` 4. `organizeImports` 5. `inlineElement` 6. `extractInterface` 7. `changeMethodSignature` 8. `convertToLambda` 9. `encapsulateField` 10. `introduceParameter` ## Vorgeschlagener Fix Aufteilen in separate Klassen, z.B.: - `RenameRefactoring.java` - `ExtractRefactoring.java` - `MoveRefactoring.java` - `ImportOrganizer.java` - etc. Gemeinsame Hilfsmethoden (`describeChange`, `getRealErrors`, `findElement`) in eine `RefactoringSupport`-Utility-Klasse extrahieren. ## Kontext Identifiziert bei der Architektur-Analyse durch Agent jdt-gamma (Erich Gamma).
Author
Collaborator

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, ConvertToLambdaRefactoring

Verbleibende 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.

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`, `ConvertToLambdaRefactoring` Verbleibende 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.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-tools/jdt-mcp-server#30
No description provided.