ElementLookup konsolidieren — findType, getJavaProject, resolveElement 4-fach dupliziert #53
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#53
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
Die Element-Lookup-Logik (Typ-, Methoden- und Feld-Auflösung) existiert in 4+ Varianten mit subtilen Unterschieden:
findType / findTypeByName (identisch, 4 Kopien)
CodeAnalysisToolsfindType()(Zeile 466)isBinary()-Check, keinisOpen()-CheckNavigationToolsfindTypeByName()(Zeile 411)isBinary()-Check, keinisOpen()-CheckCodeGenerationToolsfindTypeByName()isBinary()-CheckRefactoringSupportfindTypeInSourceProject()(Zeile 37)isBinary(),getResource(),isOpen()Nur
RefactoringSupporthat die korrekte Implementierung. Die anderen können Binary-Typen zurückgeben, was beigetSource()zuJavaModelExceptionführt.getJavaProject (identisch, 2 Kopien)
ProjectInfoTools.getJavaProject()(Zeile 719)CreationTools.getJavaProject()(Zeile 359)resolveElement / findMember (4 Varianten)
Die
className#memberNameParsing- und Auflösungslogik:CodeAnalysisTools.resolveElement()(Zeile 416)CodeAnalysisTools.getSourceRange()(Zeile 334, inline)RefactoringSupport.findElement()(Zeile 58)DocumentationTools.findMember()(Zeile 481)Vorschlag
Neue Klasse
ElementLookup(oderJavaModelHelper) die alle Varianten konsolidiert:findTypeInSourceProject(String fqn)— die korrekte Implementierung aus RefactoringSupportgetJavaProject(String name)— zentralresolveElement(String elementName)—className#memberNameParsing + AuflösungGefunden von
Alle 5 Reviewer übereinstimmend — der meistgenannte Befund