package org.gcube.portlets.user.workspace.server.util; import java.util.ArrayList; import java.util.List; import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; /** * The Class DifferenceBetweenInfoContactModel. * * @author Francesco Mangiacrapa francesco.mangiacrapa{@literal @}isti.cnr.it * Nov 19, 2015 */ public class DifferenceBetweenInfoContactModel { private List listOne; private List listTwo; /** * Get difference between listA and listB . * * @param listA the list a * @param listB the list b */ public DifferenceBetweenInfoContactModel(List listA, List listB){ this.listOne = listA; this.listTwo = listB; } /** * Gets the differents contacts. * * @return what is in listA that is not in listB. */ public List getDifferentsContacts(){ if(this.listOne==null) return new ArrayList(); if(this.listTwo==null || this.listTwo.size()==0) return this.listOne; List difference = new ArrayList(); boolean found; for (InfoContactModel o1 : listOne) { found = false; for (InfoContactModel o2 : listTwo) { if(InfoContactModel.COMPARATORLOGINS.compare(o1, o2)==0){ found = true; break; } } if(!found) difference.add(o1); } return difference; } /** * test. * * @param args the arguments */ /*public static void main(String[] args) { List listA = new ArrayList(); listA.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri", false)); listA.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false)); // listA.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi", false)); // listA.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false)); listA.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa",false)); listA.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante",false)); List listB = new ArrayList(); // listB.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri",false)); // listB.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi",false)); // listB.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false)); // listB.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false)); listB.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa",false)); listB.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante",false)); DiffereceBeetweenInfoContactModel diff = new DiffereceBeetweenInfoContactModel(listA, listB); System.out.println("# differences: "+diff.getDifferentsContacts().size()); for (InfoContactModel infoContactModel : diff.getDifferentsContacts()) { System.out.println("the differce is: "+infoContactModel.getLogin()); } } */ }