andbin ha scritto:
morellik ha scritto:
Sono due oggetti attraverso cui si accede a dei documenti MongoDB. A parte il nome, hanno comportamenti e caratteristiche identiche.
Li puoi "accomunare" con un super-tipo (classe base o interfaccia comune)? Ovviamente il super-tipo deve esporre tutte le informazioni che servono poi nel for.
Se sì, è fatta, diventa banalissimo.
Non so se si puo' fare. Al momento
InteractionVdw estende
InteractionHbond dato che entrambe hanno le stesse caratteristiche eccetto per quella che Morphia (driver per MongoDB) chiama Entity e che e' il documento a cui ogni oggetto fara' riferimento.
@Entity(value = "interactions_vdw", noClassnameStored=true)
public class InteractionVdw extends InteractionHbond {
}
Inoltre per fare le query c'e' un altro oggetto nel mezzo, una specia di DAO, per ogni documento, che viene "iniettato" nel controller
@Inject private InteractionHbondRepository ihbond;
@Inject private InteractionVdwRepository ivwd;
, per cui in
List<InteractionVdw> ih = ivwd.findByLigId(lig_id);
InteractionVdw e' l'oggetto che rappresenta la struttura del documento e ivwd e' l'oggetto che permette di fare query.
Quindi, sebbene i due oggetti InteractionVdw e InteractionHbond siano identici, fanno comunque riferimento a due entita' differenti.
Non so se mi sono spiegato abbastanza da capire il problema, ma la vedo dura. Mi sa che alla fine mi tocchera' duplicare un po' di codice.