Como Verificar Alteração no Objeto  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
colored
GUJ Ranger
[Avatar]

Membro desde: 07/06/2007 12:27:41
Mensagens: 864
Localização: SP
Offline

Bom estou precisando verificar se houve algum tipo de alteração em 1 objeto..
Por ex: Eu Tenho um Mini Cadastro e após ele salvar outros campos são liberados para conclusão, e com isso o cadastro feito anteriormente pode sofrer alterações
mas quando eu vou finalizar tudo esse orçamento eu tenho q fazer essa verificação, se houve alteração... e tá triste pq nada q eu tento da certo..

Eu pensava que por exemplo..



Ele só iria igualar os objetos nesse momento mas, aparentemente eles sempre estão iguais, caso eu faça alguma mudança em p, p1 também sofre a mudança...
Alguem tem alguma ideia q possa me ajudar como resolver isso???

Muito Obrigado

Caelum - FJ 11, 21, 26, 27, 31, 57 =D
Developer of Something.
luciano@@
Virtual Machine Man
[Avatar]

Membro desde: 28/04/2010 13:11:27
Mensagens: 527
Localização: Salvador,BA
Offline

Cara oque você está fazendo é apenas atribuir a referencia de um objeto a uma variavel.

Ambas as variaveis p e p1 apontam para o mesmo objeto. Para fazer oque você está querendo você tem que instanciar um novo objeto e copiar os valores.

As pessoas têm algo em comum. Sâo todas diferentes.
colored
GUJ Ranger
[Avatar]

Membro desde: 07/06/2007 12:27:41
Mensagens: 864
Localização: SP
Offline

Tipo...


?????

Mas tipo n tem algum modo de eu verificar se 1 objeto foi alterado???

Caelum - FJ 11, 21, 26, 27, 31, 57 =D
Developer of Something.
luciano@@
Virtual Machine Man
[Avatar]

Membro desde: 28/04/2010 13:11:27
Mensagens: 527
Localização: Salvador,BA
Offline

Se seu negocio depende dessa verificação, é legal que você crie um flag de atualização no objeto, e caso em algum ponto o objeto for atualizado o flag deve ser setado para true e na hora que você for reutilizar você checa o flag.

As pessoas têm algo em comum. Sâo todas diferentes.
colored
GUJ Ranger
[Avatar]

Membro desde: 07/06/2007 12:27:41
Mensagens: 864
Localização: SP
Offline

Sim essa seria a ideia simples.. eh que tipo eu to reorganizando um projeto... e no codigo q o cara fez.. uma classe com uns 30 atributos ele guardou todos em variaveis e depois comparou uma por uma...
Isso fica Horrivel.. por isso eu queria algo mais interessante, e fora q isso eh usado sempre...

o cara fez isso mesmo q vc disse nessa classe, mas convenhamos que pra esse caso fica muito ruim concorda..

Caelum - FJ 11, 21, 26, 27, 31, 57 =D
Developer of Something.
eberson_oliveira
JavaGuru
[Avatar]

Membro desde: 16/01/2008 10:18:17
Mensagens: 206
Localização: Matão - SP
Offline

Olá,

Já pensou na possibilidade de implementar um Observer? Talvez você consiga resolver com esse padrão.

[]s
Éberson
[Email] [MSN]
luciano@@
Virtual Machine Man
[Avatar]

Membro desde: 28/04/2010 13:11:27
Mensagens: 527
Localização: Salvador,BA
Offline

E se implementar o observer não se esqueça de postar a solução porque eu já tentei fazer isso em um projeto mas no final não deu tempo.

As pessoas têm algo em comum. Sâo todas diferentes.
BrunoCarlo
Virtual Machine Man

Membro desde: 25/11/2004 10:50:06
Mensagens: 633
Localização: Rio de Janeiro
Offline

Ola,

Para isto tem o PropertyChangeListener, com o PropertyChangeSupport... que server pra isto.. ou mesmo o Observer, como foi citado pelo colega acima.

Evoluir é preciso

Sempre bom olhar-API
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Não tem solução elegante pra esse problema.

Você pode fazer um pouco de mágica com Reflection, inicializando uma coleção com os valores antigos e em determinado momento comparar com o estado atual do objeto.

Ou se quiser uma solução que deixa tudo transparente, mas com mágica em excesso, use AspectJ.

Former LIPE.
[ICQ]
pmlm
GUJ Master

Membro desde: 20/04/2009 12:20:07
Mensagens: 1199
Localização: Portugal
Offline



Nota que terás de implementar a interface Cloneable na tua classe Pessoa e fazer override do método clone().
colored
GUJ Ranger
[Avatar]

Membro desde: 07/06/2007 12:27:41
Mensagens: 864
Localização: SP
Offline

Eu Tentei.. Implementar o observer mais eh muito tenso...
entao tentei o clone mas parece q n funcionou muito bem..





Alguem pode me Ajudar :X?
Ou sei lá me mostrar um exeplo 1 pk mais simples d observer pq n consegui entende-lo..

Obrigado a todos que ja deram uma força ;D

Caelum - FJ 11, 21, 26, 27, 31, 57 =D
Developer of Something.
pmlm
GUJ Master

Membro desde: 20/04/2009 12:20:07
Mensagens: 1199
Localização: Portugal
Offline




colored
GUJ Ranger
[Avatar]

Membro desde: 07/06/2007 12:27:41
Mensagens: 864
Localização: SP
Offline

Entendi pmlm ..
Mas o problema está que estou procurando uma solução justamente para não ter q ficar comparando atributo a atributo.. pq tenho algumas classes com muitos...
O otro cara aki até implementou dessa forma, mas eu acho q eh muito estranho.. por isso achei q houvesse algo pra verificar o objeto por completo e nao campo a campo

This message was edited 1 time. Last update was at 10/05/2010 10:10:52


Caelum - FJ 11, 21, 26, 27, 31, 57 =D
Developer of Something.
pmlm
GUJ Master

Membro desde: 20/04/2009 12:20:07
Mensagens: 1199
Localização: Portugal
Offline

Verificar o "objecto completo" não é possível uma vez que o que define o objecto são os seus atributos. Podes, como também penso que já foi sugerido, adicionar uma flag à tua classe pessoa, que alteres quando o objecto for alterado.
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team