/** * 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.transformer.component.parameters; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import org.squale.squalecommon.datatransfertobject.component.parameters.MapParameterDTO; import org.squale.squalecommon.datatransfertobject.component.parameters.StringParameterDTO; import org.squale.squalecommon.datatransfertobject.config.TaskDTO; import org.squale.squalecommon.datatransfertobject.config.TaskParameterDTO; import org.squale.squalecommon.datatransfertobject.rulechecking.CheckstyleDTO; import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.ParametersConstants; import org.squale.squaleweb.applicationlayer.formbean.component.parameters.CheckstyleForm; import org.squale.welcom.struts.bean.WActionForm; import org.squale.welcom.struts.transformer.WITransformer; import org.squale.welcom.struts.transformer.WTransformerException; /** * Conversion des informations du formulaire de configuration Checkstyle */ public class CheckstyleProjectConfTransformer implements WITransformer { /** * @param pObject l'objet � transformer * @throws WTransformerException si un pb apparait. * @return le formulaire. */ public WActionForm objToForm( Object[] pObject ) throws WTransformerException { CheckstyleForm form = new CheckstyleForm(); objToForm( pObject, form ); return form; } /** * @param pObject l'objet � transformer * @param pForm le formulaire � remplir. * @throws WTransformerException si un pb apparait. */ public void objToForm( Object[] pObject, WActionForm pForm ) throws WTransformerException { int index = 0; MapParameterDTO projectParamsDTO = (MapParameterDTO) pObject[index++]; TaskDTO task = (TaskDTO) pObject[index++]; Collection versions = (Collection) pObject[index++]; CheckstyleForm form = (CheckstyleForm) pForm; StringParameterDTO params = (StringParameterDTO) projectParamsDTO.getParameters().get( ParametersConstants.CHECKSTYLE_RULESET_NAME ); if ( params != null ) { form.setSelectedRuleSet( params.getValue().trim() ); } else if ( form.isNewConf() ) { params = new StringParameterDTO( getDefaultRuleSet( task ) ); if ( params.getValue().length() > 0 ) { projectParamsDTO.getParameters().put( ParametersConstants.CHECKSTYLE_RULESET_NAME, params ); form.setSelectedRuleSet( params.getValue() ); } } // Mettre la liste des versions disponibles dans la formbean Iterator it = versions.iterator(); // On filtre pour ne conserver que les noms de ruleset uniques HashSet set = new HashSet(); while ( it.hasNext() ) { set.add( ( (CheckstyleDTO) it.next() ).getName() ); } form.setVersions( (String[]) set.toArray( new String[] {} ) ); } /** * @param pTask checkstyle task * @return default ruleset */ private String getDefaultRuleSet( TaskDTO pTask ) { String result = ""; for ( Iterator it = pTask.getParameters().iterator(); it.hasNext() && ( result.length() == 0 ); ) { TaskParameterDTO param = (TaskParameterDTO) it.next(); if ( param.getName().equals( "ruleset" ) ) { result = param.getValue(); } } return result; } /** * @see org.squale.welcom.struts.transformer.WITransformer#formToObj(org.squale.welcom.struts.bean.WActionForm) * @param form le formulaire * @return les objets transform�s * @throws WTransformerException si erreur */ public Object[] formToObj( WActionForm form ) throws WTransformerException { throw new WTransformerException( "not yet implemented" ); } /** * @see org.squale.welcom.struts.transformer.WITransformer#formToObj(org.squale.welcom.struts.bean.WActionForm, * java.lang.Object[]) * @param pForm le formulaire * @param pObject le tableau d'objet * @throws WTransformerException si erreur */ public void formToObj( WActionForm pForm, Object[] pObject ) throws WTransformerException { CheckstyleForm form = (CheckstyleForm) pForm; MapParameterDTO projectParamsDTO = (MapParameterDTO) pObject[0]; StringParameterDTO param = new StringParameterDTO(); param.setValue( form.getSelectedRuleSet() ); projectParamsDTO.getParameters().put( ParametersConstants.CHECKSTYLE_RULESET_NAME, param ); } }