2011-11-14 34 views
0

如果我使用GWT生成器框架生成源代碼,我如何確保一個生成器在另一個生成器之前運行。GWT生成器排序

例如,如果我正在生成uibinder代碼,如何確保我的生成器在uibinder之前運行?

+0

你能舉個例子嗎?發電機在GWT.create()上運行,所以有一個生成器生成GWT.create()將調用另一個生成器。如果一個生成器依賴於另一個生成器生成的其他代碼,那麼我有一個問題;重構你的代碼,以便兩個生成器可以生成通用代碼,而不是依賴於排序。 –

回答

2

您不必確保它。發電機的工作方式如下。 當調用generate方法時,generator可能會返回新類的名稱並創建一個新的源。在此GWT將嘗試預編譯新創建的源。如果新類包含GWT.create,它將重新綁定到某個生成器,那麼該生成器也將被調用。

例如在你的情況下,你的生成器將不得不創建一個java類(使用普通的uibinder)和* .ui.xml文件。當GWT將開始預編譯新創建的類時,它將最終調用UiBinder生成器。

0

我的猜測是你的生成器類必須在其他生成器觸發類之前編譯。

我建議將生成的軟件包包含在依賴模塊中,或者在您的uibinder文件之前編譯生成的類文件。

在您的示例中,MyGenerator.java將在編譯階段的MyView.java之前。