/**
* 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.action.component.parameters;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import org.squale.jraf.helper.AccessDelegateHelper;
import org.squale.jraf.spi.accessdelegate.IApplicationComponent;
import org.squale.squaleweb.applicationlayer.action.component.CreateProjectAction;
import org.squale.squaleweb.applicationlayer.formbean.component.parameters.AbstractParameterForm;
import org.squale.squaleweb.applicationlayer.formbean.creation.CreateProjectForm;
import org.squale.welcom.struts.bean.WActionForm;
import org.squale.welcom.struts.transformer.WTransformerFactory;
/**
* Action de param�trage des param�tres de la t�che Java/Jsp PMD Une m�me action permet le param�trage de la t�che PMD
* dans un contexte java seul ou avec le contexte jsp
*/
public class CreatePmdParametersAction
extends CreateParametersAction
{
/**
* @see org.squale.squaleweb.applicationlayer.action.component.parameters.CreateParametersAction#getTransformerParameters(org.squale.squaleweb.applicationlayer.formbean.creation.CreateProjectForm,
* javax.servlet.http.HttpServletRequest) {@inheritDoc}
*/
public Object[] getTransformerParameters( CreateProjectForm pProject, HttpServletRequest pRequest )
throws Exception
{
// Obtention des configurations disponibles
IApplicationComponent acPmdAdmin = AccessDelegateHelper.getInstance( "PmdAdmin" );
// on r�cup�re la liste des configurations disponibles
Collection configurationsDTO = (Collection) acPmdAdmin.execute( "getAllConfigurations" );
Object[] params = { pProject.getParameters(), pProject.getConfigurableTask( "PmdTask" ), configurationsDTO };
return params;
}
/**
* {@inheritDoc}
*
* @see org.squale.squaleweb.applicationlayer.action.component.parameters.CreateParametersAction#fill(org.apache.struts.action.ActionMapping,
* org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest,
* javax.servlet.http.HttpServletResponse)
*/
public ActionForward fill( ActionMapping pMapping, ActionForm pForm, HttpServletRequest pRequest,
HttpServletResponse pResponse )
{
super.fill( pMapping, pForm, pRequest, pResponse );
// Only if it's a new project
if ( ( (AbstractParameterForm) pForm ).isNewConf() )
{
// Save project in order to have a default value for checkstyle
ActionMessages errors = new ActionMessages();
CreateProjectForm project = (CreateProjectForm) pRequest.getSession().getAttribute( "createProjectForm" );
try
{
WTransformerFactory.formToObj( ( (AbstractParameterForm) pForm ).getTransformer(), (WActionForm) pForm,
getTransformerParameters( project, pRequest ) );
}
catch ( Exception e )
{
// Save exceptions
handleException( e, errors, pRequest );
}
if ( !errors.isEmpty() )
{
saveMessages( pRequest, errors );
}
// Call business layer
new CreateProjectAction().saveProject( pMapping, project, pRequest, pResponse );
}
return null;
}
}