 /**
  * An application that reports on the size of a directory and
  * its subdirectories
  *
  * @author  Prof. David Bernstein, James Madison University
  * @version 1.0
  */
  public class Size
  {
    /**
     * The entry point
     *
     * @param args  The command line arguments
     */
     public static void main(String[] args)
     {
			boolean                   verbose;
	 		DirectorySizeCalculator   calc;
			int                       directories, files;
			long                      size;

			if (args.length <= 0) 
			{
	    		printUsageMessage();
			}
			else
			{
	    		verbose = false;

	    		if ((args.length >= 2) && (args[1].equals("-v")))
	    		{
					verbose = true;
	    		}

	    		calc = new DirectorySizeCalculator(args[0], verbose);
	    
	    		calc.search();
	    		directories = calc.getNumberOfDirectories();
	    		files       = calc.getNumberOfOtherFiles();
	    		size   = calc.getTotalSize();
	    
	    		System.out.println("\n");
	    		System.out.println("Size:");
	    		System.out.println("  Number of directories: "+directories);
	    		System.out.println("  Number of files:       "+files);
	    		System.out.println("  Total size (in bytes): "+size);
		}// end else
 
    } // end main


     /**
      * Print a usage message to the console
      */
    	private static void printUsageMessage()
    	{
			System.out.println("\n");
			System.out.println("Usage:");
			System.out.println("       java Size path [-v] \n");
			System.out.println("\n");
			System.out.println("where:");
			System.out.println("       path denotes the top-level directory");
			System.out.println("       The -v switch produces verbose output");
			System.out.println("\n");

    	} // end printUsageMessage

} // end  Size
