/** * 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.squalix.tools.macker; import java.io.File; import java.util.HashSet; import java.util.List; import java.util.Set; import org.squale.squalecommon.enterpriselayer.businessobject.rulechecking.ProjectRuleSetBO; import org.squale.squalix.util.file.ExtensionFileFilter; import org.squale.squalix.util.file.FileUtility; /** * Configuration de la t�che Macker */ public class MackerConfiguration { /** L'extension d'un fichier java */ public static final String COMPILED_FILE_EXTENSION = ".class"; /** Le chemin racine du projet */ private String mRoot; /** Le chemin racine des .class des jsps */ private String mJspRoot; /** Les fichiers � anlyser */ private HashSet mFilesToAnalyze; /** Les sources du projet */ private List mSources; /** Les jsps du projet */ private List mJsps; /** La liste des noms absolus des fichiers inclus */ private List mIncludedFiles; /** Le fichier de configuration Macker */ private File mConfigFile; /** La liste des r�gles Macker */ private ProjectRuleSetBO mRuleSet; /** * @return le fichier de configuration */ public File getConfigFile() { return mConfigFile; } /** * @return la liste des fichiers inclus */ public List getIncludedFiles() { return mIncludedFiles; } /** * @return la liste des fichier � analyser */ public HashSet getFilesToAnalyze() { return mFilesToAnalyze; } /** * @return le chemin racine */ public String getRoot() { return mRoot; } /** * @return la liste des r�gles */ public ProjectRuleSetBO getRuleSet() { return mRuleSet; } /** * @return les sources du projet sous forme de <code>StringParameterBO</code> */ public List getSources() { return mSources; } /** * @param pConfigFile le fichier de configuration */ public void setConfigFile( File pConfigFile ) { mConfigFile = pConfigFile; } /** * @param pIncludedFiles la liste des fichiers inclus */ public void setIncludedFiles( List pIncludedFiles ) { mIncludedFiles = pIncludedFiles; } /** * @param pFilesToAnalyze les fichiers � analyser */ public void setFilesToAnalyze( HashSet pFilesToAnalyze ) { mFilesToAnalyze = pFilesToAnalyze; } /** * @param pRoot le chemin racine */ public void setRoot( String pRoot ) { mRoot = pRoot; } /** * @param pRuleSet la liste des r�gles */ public void setRuleSet( ProjectRuleSetBO pRuleSet ) { mRuleSet = pRuleSet; } /** * @param pSources les sources sous forme de <code>StringParameterBO</code> */ public void setSources( List pSources ) { mSources = pSources; } /** * Modifie la liste des fichiers � analyser dans un r�pertoire donn� et en appliquant un filtre pr�cis. * * @param classesDir le r�pertoire des fichiers � r�cup�rer */ public void setFilesToAnalyze( String classesDir ) { setFilesToAnalyze( (HashSet) getFilesToAnalyze( classesDir ) ); } /** * Retourne la liste des fichiers � analyser dans un r�pertoire donn� en appliquant un filtre pr�cis. * * @param classesDir le r�pertoire des fichiers � r�cup�rer * @return la liste des fichiers filtr�s */ public Set getFilesToAnalyze( String classesDir ) { // Le filtre � utiliser pour r�cup�rer les fichiers ExtensionFileFilter filter = new ExtensionFileFilter( COMPILED_FILE_EXTENSION ); Set filesToAnalyse = new HashSet(); filesToAnalyse = FileUtility.createRecursiveListOfFiles( new File( classesDir ), filter, filesToAnalyse ); return filesToAnalyse; } /** * @return la liste des jsps */ public List getJsps() { return mJsps; } /** * @param pJsps la liste des jsps */ public void setJsps( List pJsps ) { mJsps = pJsps; } /** * @return le r�pertoire contenant les .class des jsps */ public String getJspRoot() { return mJspRoot; } /** * @param pJspRoot le r�pertoire contenant les .class des jsps */ public void setJspRoot( String pJspRoot ) { mJspRoot = pJspRoot; } }