Prezados, boa tarde!
Tenho uma aplicação em Java dividido da seguinte forma:
-Cliente: é baixado pelo usuário. Basicamente, interface gráfica.
-Modelo: também é baixado pelo cliente. Possui as classes comuns ao Cliente e ao Servidor. Entre outras, as classes Barra e Estrutura com um monte de gets e sets.
-Servidor: onde é realizado os cálculos/lógica do negócio. É executado remotamente em um servidor (via SOAP) e, portanto, não é baixado. Para processamento, as classes ModeloBarra e ModeloEstrutura estendem as classes Barra e Estrutura.
Durante a utilização, no cliente, a classe Estrutura é serializada com o XStream (para xml) e enviado ao servidor para processamento e posterior retorno.
No servidor, deveria ser realizado um cast de Barra (enviado pelo cliente) para ModeloBarra (que possui a lógica do negócio), mas esse cast não é possível:
java.lang.ClassCastException: xyz.porticum.modelo.Barra cannot be cast to xyz.porticum.ws.modelo.ModeloBarra
Até então, tenho utilizado a desserealização de Barra para ModeloBarra, via XStream. Tem funcionado, porém, é uma grande gambiarra. Estou implementando novas funcionalidades e estou tendo dificuldades com essa solução.
De que outra forma poderia realizar esse “cast”?
Há algum Design Pattern para problemas desse tipo? Cliente e servidor em que as classes do servidor estendem das classes do cliente.
Desde já, muito obrigado!