/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or any later version. * * Squale is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ package org.squale.squaleweb.applicationlayer.formbean.reference; import java.util.ArrayList; import java.util.List; import org.squale.squaleweb.applicationlayer.formbean.RootForm; /** * Regroupe l'ensemble des diff�rents ReferenceListForm */ public class SetOfReferencesListForm extends RootForm { /** * Ensemble des listes des r�f�rences, liste de ReferenceGridForm */ private List mList = new ArrayList( 0 ); /** * @return la liste des grilles de r�f�rences */ public List getList() { return mList; } /** * @param pList la liste des grille de r�f�rences */ public void setList( List pList ) { mList = pList; } /** * Ajoute la r�f�rence associ�e � la grille Si une grille porte le m�me nom et que la date est avant pGridForm alors * on supprime la grille et on ajoute pGridForm * * @param pGridForm la grille de r�f�rence * @param pReferenceForm la r�f�rence a ajouter */ public void add( ReferenceGridForm pGridForm, ReferenceForm pReferenceForm ) { // On parcours la liste List refs = null; ReferenceGridForm current = null; boolean found = false; int compare = 0; for ( int i = 0; i < mList.size() && null == refs; i++ ) { current = (ReferenceGridForm) mList.get( i ); if ( current.getName().equals( pGridForm.getName() ) ) { refs = (List) current.getReferenceListForm().getList(); // on sauvegarde la valeur associ�e compare = current.getUpdateDate().compareTo( pGridForm.getUpdateDate() ); // Si une grille du m�me nom existe et que la date est avant // alors on la remplace par la grille en param�tre if ( compare < 0 ) { mList.remove( i ); // on supprime l'entr�e afin de la remplacer } else { found = true; if ( compare == 0 ) { // ce sont les m�mes grille, on ajoute la r�f�rence refs.add( pReferenceForm ); } } } } // Si on a trouv� aucune entr�e portant le m�me nom, on ajoute la grille if ( !found ) { refs = new ArrayList(); refs.add( pReferenceForm ); ReferenceListForm refsList = new ReferenceListForm(); refsList.setList( refs ); pGridForm.setReferenceListForm( refsList ); mList.add( pGridForm ); } } }