}
@Override
public ProjectMetrics loadMetrics()
{
final ProjectMetrics metrics = new ProjectMetrics();
for ( final File directory : getNonEmptyDirectories() )
{
final Collection< File > classesInPackage = FileUtils.listFiles( directory,
FLEX_FILTER,
false );
if ( directory.isDirectory()
&& !classesInPackage.isEmpty() )
{
final String packageFullName = MetricUtils.getQualifiedName( getSourceDirectory(),
directory );
int functionsInPackage = 0;
int ncssInPackage = 0;
int asDocsInPackage = 0;
int multipleLineCommentInPackage = 0;
final int importsInPackage = 0;
for ( final File fileInPackage : classesInPackage )
{
IClass classNode = null;
InternalFunctionMetrics functionMetrics = null;
final IFlexFile file = com.adobe.ac.pmd.files.impl.FileUtils.create( fileInPackage,
getSourceDirectory() );
if ( asts.containsKey( file.getFullyQualifiedName() )
&& asts.get( file.getFullyQualifiedName() ).getClassNode() != null )
{
classNode = asts.get( file.getFullyQualifiedName() ).getClassNode();
functionsInPackage += classNode.getFunctions().size();
functionMetrics = InternalFunctionMetrics.create( metrics,
packageFullName,
classNode );
asDocsInPackage += functionMetrics.getAsDocsInClass();
multipleLineCommentInPackage += functionMetrics.getMultipleLineCommentInClass();
ncssInPackage += functionMetrics.getNcssInClass();
}
final ClassMetrics classMetrics = ClassMetrics.create( packageFullName,
fileInPackage,
functionMetrics,
classNode,
file,
mxmlFactor );
asDocsInPackage += classMetrics.getAsDocs();
multipleLineCommentInPackage += classMetrics.getMultiLineComments();
metrics.getClassMetrics().add( classMetrics );
}
metrics.getPackageMetrics().add( PackageMetrics.create( classesInPackage,
packageFullName,
functionsInPackage,
ncssInPackage,
asDocsInPackage,
multipleLineCommentInPackage,