2012-06-21 76 views
0

我有一個DocumentEntityProxy以下方法:GWT RequestFactory - 不同意見的1 EntityProxy

String getAttribute1(); 
void setAttribute1(String s); 
String getAttribute2(); 
void setAttribute2(String s); 
String getAttribute3(); 
void setAttribute3(String s); 

我想實現的是,如果你是一個標準的用戶只能使用getAttribute1()和setAttribute1( )如果您是管理員用戶,則可以使用所有方法。在這個例子中,我只有三個屬性和兩種不同類型的用戶,但是在一個真實的項目中,還有很多當然。

實現該目標的最佳方法是什麼?

在此先感謝您的幫助。

回答

0

您可以用inhertance工作:

class UserEntity { 
    String getAttribute1() { } 
    void setAttribute1(String s) { } 
} 

class AdminEntity extends UserEntity { 
    String getAttribute2() { } 
    void setAttribute2(String s) { } 
} 

而且代理:

@ProxyFor(UserEntity.class) 
interface UserEntityProxy extends EntityProxy { 
    String getAttribute1(); 
    void setAttribute1(String s); 
} 

@ProxyFor(AdminEntity.class) 
interface AdminEntityProxy extends UserEntityProxy { 
    String getAttribute2(); 
    void setAttribute2(String s); 
} 

爲了確保進入實體類型可以有兩種取景方式(返回userEntity或adminEntity)和限制訪問到後端的方法,例如SpringSecurity的@Secured註解。