2012-01-10 14 views
5

Próbuję napisać generator kodu zrobić do mapowania między dowolnymi dwiema klasami za pomocą Eclipse. Chodzi o to, aby przedstawić Kreatora, w którym użytkownicy wybierają dwie klasy, których właściwości muszą zostać odwzorowane. Następnie wyświetl wszystkie potencjalne dopasowania i jeśli użytkownik jest w porządku, utwórz klasę ClassMapper, w której będziemy mieli tylko jedną mapę metod, która wykona wymaganą klasę Class1.setXXX (Class2.getXXX());Generator kodu Eclipse do generowania mapperów Klasa

Jakieś wskazówki, jak możemy to zrobić?

Dzięki

+0

Czy jesteś pewien, że framework mapera fasoli, taki jak Dozer (http://dozer.sourceforge.net/), nie będzie działał dla ciebie? – Daff

+0

zabawny .. Miałem zamiar napisać program swingowy, aby zrobić właśnie to .. odkąd nie znalazłem żadnych wtyczek wtyczki eclipse. Człowieku .. tyle razy, ile musisz ustawić, aby to uzyskać ... Tyle pisania .. Ale przestałem, bo nie było to warte problemów. Daj mi znać, jeśli znajdziesz ... – sethu

+0

Dozer wydaje się robić to, co my obaj potrzebowali .. Ale jest to statyczne mapowanie z jednej klasy do drugiej. Jeśli potrzebujesz odwzorować zmienne między wieloma klasami, musisz napisać/wygenerować kod – sethu

Odpowiedz

2

To co masz zamiar zrobić oferuje podobną funkcjonalność jak spycharki, ale kod statyczny ma tę przewagę, że jest to szybsze, zawiera logikę tylko w kodzie, i łatwiej jest znaleźć wykorzystanie pola poprzez hierarchię połączeń w IDE.

Generalnie wtyczka Eclipse byłaby najlepszym sposobem na rozpoczęcie, ponieważ można wyświetlać tylko GUI, a wyświetlanie odbywa się przez samo Eclipse, a także dostęp do jego wspaniałych narzędzi do pracy z kodem java.

Myślę, że jednak najgorsza byłaby konfiguracja. Dozer ma prymitywny program odwzorowujący (prymitywny w sposobie, w jaki konwertuje on między pierwotnymi i natywnymi typami java;), który obsługuje najbardziej typowe konwersje między standardowymi typami, jednak istnieje potrzeba skonfigurowania go. Na przykład łańcuchy reprezentujące wartości logiczne mogą mieć wartości "t" i "f" lub "prawda" i "fałsz" lub "1" i "0" lub słowa z innego języka. Daty mogą mieć różne formaty itd. Więc musisz skonfigurować w tej wtyczce różnych mappers, prawdopodobnie poprzez zdefiniowanie własnych fragmentów kodu do obsługi określonej konwersji.

Jednakże, jeśli to zrobisz, zostaniesz bardzo doceniony. Ostatnio szukałem czegoś, co mogłoby zrobić jeszcze więcej, to znaczy, może zarówno stworzyć mapowanie, jak i dto, do którego zostanie dopasowany kod, z możliwością scalenia hierarchii klas dla projektu, gdy podtypy obiektów są reprezentowane przez różne klasy, aby płaska pojedyncza klasa, lepiej dla transportu json, jednak bez rezultatu.

Powiązane problemy