[Resolv]Garantir integridade em relacionamento entre classes

e aí pessoal… olha eu aqui denovo

é o seguinte, tenho duas classes que se relacionam da seguinte forma

um “Fornecedor” tem vários “Titulos”, e um “Titulo” pertence a somente um “Fornecedor”, ou seja, na classe “Fornecedor”, eu tenho um Set para armazenar os “Titulos”, e na classe “Titulo” eu tenho um atributo para guardar o “Fornecedor”. Certo?

[code]
public Fornecedor {

private Set<Titulo> titulos;  

public void setTitulos(Set<Titulo> titulos){  
    this.titulos = titulos;  
}  

public Set<Titulo> getTitulos(){  
    return titulos;  
}  

public void adicionaTitulo(Titulo titulo){  
    getTitulos.add(titulo);  
}  

public void removeTitulo(Titulo titulo){  
    getTitulos.remove(titulo);  
}  

}[/code]

[code]
public Titulo {

private Fornecedor fornecedor;  

public void setFornecedor(Fornecedor fornecedor){  
    this.fornecedor = fornecedor;  
}  

public Fornecedor getFornecedor(){  
    return Fornecedor;  
}  

}[/code]

O que eu preciso é o seguinte:

Na classe Fornecedor:

  1. quando eu executar o método adicionaTitulo() passando um Titulo como referência, eu preciso que esse Titulo receba a referência do Fornecedor do qual eu chamei a execução do método
  2. quando eu executar o método removeTitulo() passando um Titulo como referência, eu preciso que esse Titulo tenha a referência do Fornecedor definida como null

Na classe Titulo:

  1. quando eu executar o método setFornecedor() passando um Fornecedor como referência, eu preciso esse Titulo seja adicionado à lista de Titulos do Fornecedor
  2. quando eu executar o método setFornecedor() passando null para o Fornecedor, eu preciso que esse Titulo seja removido da lista de Titulos do Fornecedor.

Eu tentei de várias formas, mas todas elas acabaram gerando um “loop infinito”, provocando um StackOverflow.

Espero que tenha conseguido ser claro o suficiente para que alguém possa me ajudar.

Obrigado desde já.

Abração

Problema resolvido…

para ver como ficou, acesse http://www.guj.com.br/posts/list/75181.java

abraços