I see an other problem with :
public interface AccountNodeProxy<AccountProxy> extends ValueProxy{
List<AccountNodeProxy<AccountProxy>> getChildren();
AccountProxy getData();
}
Here, AccountNodeProxy is declared like a generic type with <AccountProxy> as type parameter. It's like you wrote :
public interface AccountNodeProxy<T> extends ValueProxy{
List<AccountNodeProxy<T>> getChildren();
T getData();
}
I don't think it's what you want. It should be :
public interface AccountNodeProxy extends ValueProxy{
List<AccountNodeProxy> getChildren();
AccountProxy getData();
}
Alexandre