public static void main(String ... args) throws IOException
	{
		
		
		Options options = getOptions();
		
		CommandLine cmd = CliUtil.parse("Abstract Factory : Basic File Writing App",options,args);
		
		if(cmd == null)
			return;
		
		String factoryName = null;
		String fileName = null;
		
		if(cmd.hasOption("factory"))
		{
			factoryName = cmd.getOptionValue("factory");
		}
		
		if(cmd.hasOption("fileName"))
		{
			fileName = cmd.getOptionValue("fileName");
		}
		
		if(!concreteFactories.contains(factoryName))
		{
			System.out.println(factoryName + " is not a valid UserInterface factory.  Valid choices: " + concreteFactories.toString());
		}
		else if(fileName == null || fileName.isEmpty())
		{
			System.out.println("File name cannot be empty or null.");
		}
		else
		{
			UserInterface ui = new UserInterface(getFactory(factoryName));
			BasicFileWritingApp basicFileWritingApp = new BasicFileWritingApp(ui);
			basicFileWritingApp.start(fileName);
		}
		
		
	}