oop - Generic interface inheritance Java -


first of show code. have generic interface:

basewebservicecool:

public interface basewebservicecool<i extends sessionpeticionbasebean, o extends wsrespuestabasebean> {      o create(i wsrequest);       o read(i wsrequest);         o update(i wsrequest);       void delete(i wsrequest);  } 

sessionpeticionbean:

public class sessionpeticionbasebean implements serializable {       private string token;            private string uuidusuariologado;  } 

wsrespuestabean:

public class wsrespuestabasebean implements serializable {     private string codigorespuesta;     private string mensajerespuesta;     private boolean error;     private map<string, string> errors; } 

getters , setters skipped. have specific interface extends above base interface that: wspersonasinterface:

public interface wspersonasinterface<i extends sessionpeticionbasebean, o extends wsrespuestabasebean>  extends basewebservicecool<i, o> {   } 

the point web controller must implement base interface method through specific interface (wspersonasinterface). in controller im doing that:

public class personascontroller extends basecontroller      implements basewebservicecool<sessionpeticionbasebean, wsrespuestabasebean>  {      @rolesallowed({ "role_user" })     @requestmapping(value = "/create/", method = { requestmethod.post }, headers = "accept=application/xml, application/json")     @override     public createpersonawsrespuestabean create(             @requestbody @valid createpersonawspeticionbean createpersonapeticionbean) {           return personasbusiness.createpersona(createpersonapeticionbean);     }      @override     public @responsebody personawsrespuestabean read(             @requestbody @valid readpersonawspeticionbean readpersonawspeticionbean) {          return personasbusiness.readpersona(readpersonawspeticionbean);      } 

for brevity skipped remaining methods. implementation/overriding fails..

i controller, createpersonawsrespuestabean , personawsrespuestabean classes inherits wsrespuestabean , createpersonawspeticionbean , readpersonawspeticionbean inherits sessionpeticionbasebean.

there surely design problem, smart mind cand give tips?

change signature of controller's methods respect contract (your interface basewebservicecool) implement:

public class personascontroller extends basecontroller      implements basewebservicecool<sessionpeticionbasebean, wsrespuestabasebean>  {      @rolesallowed({ "role_user" })     @requestmapping(value = "/create/", method = { requestmethod.post }, headers = "accept=application/xml, application/json")     @override     public wsrespuestabasebean create(             @requestbody @valid sessionpeticionbasebean createpersonapeticionbean) {           return personasbusiness.createpersona(createpersonapeticionbean);     }      @override     public @responsebody wsrespuestabasebean read(             @requestbody @valid sessionpeticionbasebean readpersonawspeticionbean) {          return personasbusiness.readpersona(readpersonawspeticionbean);      } 

Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

Rendering JButton to get the JCheckBox behavior in a JTable by using images does not update my table -