Модификация существующего класса с помощью генератора GWT - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть класс (например, District), который реализует два метода:

public Object getAtribute(String name) {

}
public void setAtribute(String name, Object value){

}

Все настроено для вызова моего генератора при вызове GWT.create (Dirstrict.class).

Теперь Как я могу изменить реализацию этих методов в одном и том же классе (т.е. написать код внутри них) так, чтобы окончательный код в классе District был таким:

public Object getAtribute(String name) {
   //The generated code
}
public void setAtribute(String name, Object value){
   //The generated code
}

Спасибо

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Ваш генератор не будет переписывать реализацию класса District, он будет генерировать подкласс из District с другой реализацией. Этот сгенерированный подкласс - это то, что будет возвращено GWT.create(District.class).

Как только ваш сгенерированный подкласс написан, он будет скомпилирован в JavaScript, и ваша первоначальная реализация суперкласса может быть полностью удалена, если она никогда не используется, поэтому эффект будет таким же.

0 голосов
/ 08 декабря 2010

Вы должны создать класс генератора, который расширяет com.google.gwt.core.ext.Generator и указать компилятору gwt использовать ваш генератор для генерации класса District.

your.gwt.xml

<generate-with class="my.package.DistrictGenerator">
    <when-type-assignable
    class="my.package.District"/>
</generate-with>

Но сначала вы должны подумать, действительно ли вам нужно использовать генератор, потому что это делает код более сложным.

...