Ajouter des méthodes à une classe annotée
Bonjour à tous,
Je cherche la meilleure façon pour générer des façades sur des classes annotées.
J'ai un bean de ce type :
Code:
1 2 3 4 5 6
| @MyServiceAnnotation(...)
public class MyServiceImpl implement MyService {
public String query(String demande) throws MyServiceException {
return ...;
}
... |
Et je voudrais générer une méthode de façade du type :
Code:
1 2 3 4 5 6 7 8 9 10
| @MyServiceAnnotation(...)
public class MyServiceImpl implement MyService {
private String query(String demande) throws MyServiceException {
return ...;
}
public String query(String ID, String demande) throws MyServiceException {
if (id == null) throw new MyServiceException("erreur sécurité");
return this.query(demande);
}
... |
L'idée étant d'obliger mes clients SOA à invoquer les services avec des paramètres de sécurité qui sont hors métier et qui donc ne devraient pas être codés encore et encore...
J'ai entendu parler d'interceptors ; mais je ne suis pas certain de comprendre comment injecter des paramètres contextuels via mes proxies.
J'ai envisagé l'AOP mais même si je peux pointer sur les méthodes #query cela ne force pas le client à passer les paramètres attendus (pas de contrat).
NB : j'utilise déjà APT pour générer des configurations basées sur ces mêmes annotations ; mais je débute en génération de code.
Merci d'avance pour vos idées. Thomas.