public void processArgs()

in CodeCoverage/JavaServer/java/src/org/apache/flex/tools/codecoverage/reporter/CodeCoverageReporter.java [246:393]


    public void processArgs(final String[] args)
    {
        int index = 0;
        File reportFile = null;
        List<String> includeFilters = new ArrayList<String>();
        List<String> excludeFilters = new ArrayList<String>();
        List<String> userIncludeFilters = new ArrayList<String>();
        List<String> userExcludeFilters = new ArrayList<String>();
        boolean showPackages = true;
        boolean showFiles = true;
        boolean showMethods = true;
        boolean showUnexecutedDetails = true;
        String reportFactory = null;
        
        while ((index < args.length) && (args[index].startsWith("-")))
        {
            switch (args[index])
            {
                case "-include":
                {
                    userIncludeFilters.add(args[++index]);
                    includeFilters.add(createRegexStringFromUserArg(args[index]));
                    index++;                    
                    break;
                }
                case "-exclude":
                {
                    userExcludeFilters.add(args[++index]);
                    excludeFilters.add(createRegexStringFromUserArg(args[index]));
                    index++;                    
                    break;
                }
                case "-include-regex":
                {
                    includeFilters.add(args[++index]);
                    index++;                    
                    break;
                }
                case "-exclude-regex":
                {
                    excludeFilters.add(args[++index]);
                    index++;                    
                    break;
                }
                case "-output":
                {
                    reportFile = new File(args[++index]);
                    index++;                    
                    break;
                }
                case "-hide-unexecuted":
                {
                    showUnexecutedDetails = false;
                    index++;                    
                    break;
                }
                case "-hide-methods":
                {
                    showMethods = false;
                    index++;                    
                    break;
                }
                case "-hide-files":
                {
                    showFiles = false;
                    index++;                    
                    break;
                }
                case "-hide-packages":
                {
                    showPackages = false;
                    index++;                    
                    break;
                }
                case "-report-factory":
                {
                    reportFactory = args[++index];
                    index++;                    
                    break;
                }
                default:
                {
                    System.err.println("unknown argument " + args[index]);
                    index++;                    
                    System.exit(1);
                }
            }
        }

        if (reportFile == null)
            reportFile = new File(DEFAULT_REPORT_NAME);

        Collection<String>filenames = new ArrayList<String>();
        Collection<File> files = new ArrayList<File>();

        // Collect filenames/directories from user args.
        // If no files specified look in the default data directory.
        if (index >= args.length)
        {
            filenames.add(new File(System.getProperty("user.home"), DEFAULT_DATA_DIRECTORY).getAbsolutePath());
        }
        else
        {
            for (int i = index; i < args.length; i++)
            {
                filenames.add(args[i]);
            }
        }

        // validate files
        for (String filename : filenames)
        {
            File file = new File(filename);
            
            if (!file.exists())
            {
                System.err.println("File not found: " + file.getAbsolutePath());
                System.exit(1);
            }
            else
            {
                if (file.isDirectory())
                {
                    Collection<File> newFiles = listFiles(file); 
                    files.addAll(newFiles);
                    System.out.println("Found " + newFiles.size() + " files in " + file.getAbsolutePath());
                }
                else
                {
                    files.add(file);
                    System.out.println("Found " + file.getAbsolutePath());
                }
            }            
            
        }

        this.includeFilters = includeFilters;
        this.excludeFilters = excludeFilters;
        this.userIncludeFilters = userIncludeFilters;
        this.userExcludeFilters = userExcludeFilters;
        this.showUnexecutedDetails = showUnexecutedDetails;
        this.showMethods = showMethods;
        this.showFiles = showFiles;
        this.showPackages = showPackages;
        this.files = files;
        this.reportFile = reportFile;
        this.reportFactory = reportFactory;
    }