Salve a tutti, ho una struttura di classi di questo genere:

Codice PHP:
public class implements Cloneable
{
    protected List[
B] list;
    
    public 
A()
    {
        list = new 
LinkedList[B]();
    }
    
    ...
//metodi che modificano la lista list (inseriscono elementi di tipo B, o derivati)
    
    
public Object clone() throws CloneNotSupportedException {
        
clone = (Asuper.clone();
        
        clone.list = new 
LinkedList[B]();
        for(
B b:list)
        {
            clone.list.
add((Bb.clone());
        }
        
        return clone;
    }
}

public class 
implements Cloneable
{
    protected 
A owner;
    
    protected 
C dato;
    
    public 
B(A owner)
    {
        
this.owner owner;
    }
    
    public 
Object clone() throws CloneNotSupportedException {
        
clone = (B)super.clone();
        
        clone.
owner =  [COLOR=limegreen][B]????[/B][/COLOR]  // come faccio a fare in modo che punti all oggetto giusto? (il clone a cui e' stato assegnato)
        
clone.dato = (Cthis.dato.clone();
        
        return clone;
    }

Gli oggetti di tipo B sono contenuti in liste degli oggetti A, e hanno un riperimento all'oggetto stesso che li contiene per poterci lavorare (e/o accedere ad altri oggetti di tipo B contenuti nella lista del medesimo oggetto A)
(L'idea e' quella di sviluppare una sorta di architettura a componenti dove un oggetto A e' formato dalla somma di oggetti B (i componenti) che modificano A e interagiscono tra loro)
Non vorrei aver sbagliato io a concepire la struttura di un architettura simile, in tal caso sono ben accetti suggerimenti.

come si può fare ?