Вот что я обычно делаю, когда кодирую кодекс, расширяющий ModelData.
По сути, вызов set () или get () просто обращается к хэш-карте. Это позволяет вашему объекту данных иметь свойства со свободным типом для доступа во время выполнения «типа отражения». Таким образом, вы можете передать любую строку в качестве первого параметра, и это будет определять имя свойства.
Я использую статические финальные строки, чтобы упростить обслуживание объекта.
Вы также можете связать геттеры и сеттеры, если вы хотите разделить слои WRT ваших объектов данных, но это может затруднить привязку типов GXT.
public class MockModel extends BeanModel implements ModelData {
private static final long serialVersionUID = -5276682038816452567L;
public static final String ID = "ID";
public static final String NAME = "NAME";
public static final String DESCRIPTION = "DESCRIPTION";
public static final String FIELD1 = "FIELD1";
public static final String FIELD2 = "FIELD2";
public static final String FUNCTION1 = "FUNCTION1";
public static final String FUNCTION2 = "FUNCTION2";
public MockModel(int id, String name, String desc, int f1, int f2) {
set(ID,id);
set(NAME,name);
set(DESCRIPTION,desc);
set(FIELD1,f1);
set(FIELD2,f2);
set(FUNCTION1, 0);
set(FUNCTION2, 0);
}
}