/** * 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.squalecommon.datatransfertobject.transform.component.parameters; import java.util.ArrayList; import java.util.List; import org.squale.squalecommon.datatransfertobject.component.parameters.ListParameterDTO; import org.squale.squalecommon.datatransfertobject.component.parameters.MapParameterDTO; import org.squale.squalecommon.datatransfertobject.component.parameters.StringParameterDTO; import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.ListParameterBO; import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.MapParameterBO; import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.StringParameterBO; /** * Transforme dto <-> bo pour un ListParameter */ public class ListParameterTransform { /** * @param pListParameterDTO le DTO � transformer en BO * @return le BO */ public static ListParameterBO dto2Bo( ListParameterDTO pListParameterDTO ) { ListParameterBO result = new ListParameterBO(); result.setId( pListParameterDTO.getId() ); // On r�cup�re les param�tres associ�s List paramsDTO = pListParameterDTO.getParameters(); // On va remplir la liste avec des objets transform�s en BO. List paramsBO = new ArrayList(); for ( int i = 0; i < paramsDTO.size(); i++ ) { // Si l'objet courant est une map, on appelle la m�thode qui transforme tous // les �l�ments de la liste en BO. if ( paramsDTO.get( i ) instanceof MapParameterDTO ) { paramsBO.add( MapParameterTransform.dto2Bo( (MapParameterDTO) paramsDTO.get( i ) ) ); } else { // Si il s'agit d'une liste, on rappelle la m�thode pour transformer � son tour // tous ses �l�ments en BO. if ( paramsDTO.get( i ) instanceof ListParameterDTO ) { paramsBO.add( ListParameterTransform.dto2Bo( (ListParameterDTO) paramsDTO.get( i ) ) ); } else { if ( paramsDTO.get( i ) instanceof StringParameterDTO ) { paramsBO.add( StringParameterTransform.dto2Bo( (StringParameterDTO) paramsDTO.get( i ) ) ); } } } } result.setParameters( paramsBO ); return result; } /** * @param pListParameterBO le BO � transformer en DTO * @return le DTO */ public static ListParameterDTO bo2Dto( ListParameterBO pListParameterBO ) { ListParameterDTO result = new ListParameterDTO(); result.setId( pListParameterBO.getId() ); // On r�cup�re les param�tres associ�s List paramsBO = pListParameterBO.getParameters(); // On va remplir la liste avec des objets transform�s en DTO. List paramsDTO = new ArrayList(); for ( int i = 0; i < paramsBO.size(); i++ ) { // Si l'objet courant est une map, on appelle la m�thode qui transforme tous // les �l�ments de la liste en DTO. if ( paramsBO.get( i ) instanceof MapParameterBO ) { paramsDTO.add( MapParameterTransform.bo2Dto( (MapParameterBO) paramsBO.get( i ) ) ); } else { // Si il s'agit d'une liste, on rappelle la m�thode pour transformer � son tour // tous ses �l�ments en DTO. if ( paramsBO.get( i ) instanceof ListParameterBO ) { paramsDTO.add( ListParameterTransform.bo2Dto( (ListParameterBO) paramsBO.get( i ) ) ); } else { if ( paramsBO.get( i ) instanceof StringParameterBO ) { paramsDTO.add( StringParameterTransform.bo2Dto( (StringParameterBO) paramsBO.get( i ) ) ); } } } } result.setParameters( paramsDTO ); return result; } }