2012-11-13 11 views
7

Ich versuche, Eclipse Umbenennung Refactoring zu erweitern, um eine andere Umbenennung Refactoring aufzurufen.Wie Eclipse Umbenennung Refactoring erweitern, um ein anderes Refactoring nach seiner Fertigstellung auszulösen

public class Person { 
    ... 
} 

public class PersonDAO { 
    public List<Person> getPersonByName(String name) { 
    ... 
    } 
} 

nach der Klasse Person auf Benutzer umbenennen, möchte ich Methoden wie getPersonByName zu getUserByName umbenannt werden.

Ich habe RenameParticipant erweitert und versucht, dies zu tun, indem Sie sowohl JDT umbenennen Refactoring und ASTRewrite.

Das Problem ist die Änderungen, die ich einen Konflikt mit den ursprünglichen Umbenennungs-Refactoring-Änderungen erstellen.
Ich konnte postCreateChange nicht verwenden (es scheint, dass der grundlegende Prozessor nur Null zurückgibt) und jetzt bin ich fest.

Jede Hilfe wird sehr geschätzt.

+0

Welche Art von Konflikt hat Ihre Änderung mit den ursprünglichen Umbenennungs-Refactoring-Änderungen? – reprogrammer

Antwort

1

Es gibt keine Möglichkeit, die in Methoden definierte Zeichenfolge "Person" durch den neuen Wert "Benutzer" beim Refactoring zu ändern.

Aber Sie können Ctrl +H verwenden auf den vollen Arbeitsbereich der benötigten String und ersetzen Sie es mit dem neuen Wert zu suchen.

enter image description here

Wenn Sie auf die Schaltfläche Ersetzen klicken, wird Eclipse-Sie den neuen Wert stellen, der die serched String raplace wird.

1

Bessere Vorschläge:

1) Verwenden Sie Hibernate. Sie verwenden dann die Kriterien-API, müssen nicht redundant "Person" angeben und können andere Einschränkungen/Kriterien modular anfügen - gut für Listen-/Suchseiten.

2) Rufen Sie Ihre API getByName(). List people = personDao.getPersonByName ("...") ist Bit redundant mehrfach wiederholt, schon.

Das Ganze sieht irgendwie wie der "falsche Weg" aus, DAOs, Datenbankzugriff oder Persistenz zu machen, was ich in früheren Projekten gesehen habe. Die Kombination von über-wörtlichen, aber unflexiblen & Low-Utility-Kriterien, erinnert mich nur an manuell geschriebene Persistenz oder Dienstleistungen, die in der Mitte der 90er Jahre schlecht gemacht wurden.