2012-11-13 10 views
7

Próbuję rozszerzyć zmianę nazwy za pomocą eclipse, aby wywoływać inną zmianę nazwy.Jak przedłużyć zmianę nazwy przez Eclipse, aby uruchomić inną zmianę po jej zakończeniu?

public class Person { 
    ... 
} 

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

Po zmianie nazwy klasy Osoba do Użytkownika, chcę podobne metody getPersonByName zostać zmieniona na getUserByName.

Rozszerzyłem nazwę RenameParticipant i próbowałem zrobić to za pomocą zarówno zmiany nazwy repozytorium JDT, jak i ASTRewrite.

Problem polega na tym, że zmiany powodują zmiany w stosunku do pierwotnych zmian w zmianie nazwy.
Nie mogłem użyć postCreateChange (wydaje się, że podstawowy procesor zwraca tylko wartość NULL), a teraz utknąłem.

Każda pomoc jest doceniana.

+0

Jaki rodzaj konfliktu ma twoja zmiana z pierwotnymi zmianami zmiany nazwy? – reprogrammer

Odpowiedz

1

Nie ma możliwości zmiany napisu "Osoba" zdefiniowanego metodami przez nową wartość "Użytkownik" z refaktoryzacją.

Ale można użyć Ctrl + H szukać na pełnym obszarze roboczym potrzebne String i zastąpić ją nową wartość.

enter image description here

Po kliknięciu na przycisk Zastąp, Eclipse zada nową wartość, która będzie raplace się serched String.

1

Lepsze propozycje:

1) Użyj Hibernate. Będziesz wtedy korzystać z API Criteria, nie będziesz musiał określać "Person" w sposób redundantny i możesz dołączyć inne ograniczenia/kryteria w sposób modułowy - dobrze dla stron listy/wyszukiwania.

2) Wywołaj API getByName(). Lista osób = personDao.getPersonByName ("...") jest już wielokrotnie powtarzalnie powtarzalna.

Cała sprawa wygląda trochę jak "niewłaściwy sposób" na wykonywanie DAO, dostęp do baz danych lub wytrwałość, którą widziałem w poprzednich projektach. Połączenie nadmiernie rozwlekłych, ale nieelastycznych kryteriów niskiej użyteczności, przypomina mi tylko ręcznie napisaną wytrwałość lub usługi źle wykonane w połowie lat 90-tych.

Powiązane problemy