public void processPath( PackageManager packageManager, String source )
        throws IOException
    {
        this.transformer = new JavaCodeTransform( packageManager );

        DirectoryScanner ds = new DirectoryScanner();
        // I'm not sure why we don't use the directoryScanner in packageManager,
        // but since we don't we need to set includes/excludes here as well
        ds.setExcludes( excludes );
        ds.setIncludes( includes );
        ds.addDefaultExcludes();

        File dir = new File( source );

        if ( !dir.exists() )
        {
            if ( !dir.mkdirs() )
            {
                throw new IllegalStateException(
                    "Your source directory does not exist and could not be created:" + source );
            }
        }

        ds.setBasedir( source );
        ds.scan();

        //now get the list of included files

        String[] files = ds.getIncludedFiles();

        for ( int i = 0; i < files.length; ++i )
        {
            String src = source + System.getProperty( "file.separator" ) + files[i];

            if ( isJavaFile( src ) )
            {
                transform( src, getDestination( source, src ) );
            }

        }
    }