/**
* 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/>.
*/
//Source file: D:\\cc_views\\squale_v0_0_act\\squale\\src\\squalix\\src\\org\\squale\\squalix\\tools\\mccabe\\McCabeUtility.java
package org.squale.squalix.util.file;
import java.util.Iterator;
import java.util.List;
import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.StringParameterBO;
/**
* Classe contenant les m�thodes outils utilis�es par les diff�rents outils g�n�rant des rapports.<br>
* Fournit des m�thodes permettant de manipuler les noms des m�thodes, classes et packages.
*/
public class ToolsReportsUtility
{
/**
* V�rifie si le nom de la classe correspond aux patterns s�par�s par des point-virgules.
*
* @param pClassname le nom de la classe.
* @param pPattern les patterns sous forme de liste de StringParameterBO.
* @return le r�sultat de la correspondance.
*/
public static boolean isMatchingClass( final String pClassname, final List pPattern )
{
boolean result = false;
if ( null != pClassname && null != pPattern )
{
// On parcours la liste des patterns
Iterator it = pPattern.iterator();
StringParameterBO pattern;
while ( !result && it.hasNext() )
{
pattern = (StringParameterBO) it.next();
// On v�rifie pour chaque pattern que celui-ci ne correspond pas � la classe
result = pClassname.matches( pattern.getValue() );
}
}
return result;
}
/**
* Nettoie le nom du composant si celui-ci a �t� mal remont� du rapport.<br>
* Retire les guillemets et la virgule �ventuelle.
*
* @param pName le nom a nettoyer.
* @return le nom propre.
*/
public static String clearReportName( String pName )
{
String newName = pName;
if ( newName.matches( "\".*\"," ) )
{
newName = newName.substring( 1, pName.length() - 2 );
}
return newName;
}
/**
* @param pComponentName le nom du composant JSP
* @return le nom du composant sans le "_jsp" que McCabe place en fin du nom
*/
public static String clearJspName( String pComponentName )
{
String result = pComponentName;
int id = pComponentName.lastIndexOf( "_jsp" );
if ( id > 0 )
{
result = pComponentName.substring( 0, id );
}
return result;
}
}