package net.sourceforge.squirrel_sql.client;

import java.util.List;



public interface IApplicationArguments
{

	/**
	 * @return	override for the user settings directory. Will be
	 * 				<TT>null</TT> if not overridden.
	 */
	String getSquirrelHomeDirectory();

	/**
	 * @return The name of the directory that Squirrel is installed into.
	 */
	String getUserSettingsDirectoryOverride();

	/**
	 * @return <TT>true</TT> if splashscreen should be shown.
	 */
	boolean getShowSplashScreen();

	/**
	 * @return <TT>true</TT> if help information should be written to
	 * standard output.
	 */
	boolean getShowHelp();

	/**
	 * @return	the logging configuration file name. Will be
	 * 			<TT>null</TT> if not passed.
	 */
	String getLoggingConfigFileName();

	/**
	 * @return	<TT>true</TT> if the plugins should be loaded.
	 */
	boolean getLoadPlugins();

	/**
	 * @return	<TT>true</TT> if the default metal theme should be used
	 *			rather than the SQuirreL metal theme.
	 */
	boolean useDefaultMetalTheme();

	/**
	 * Retrieve whether to use the native Look and Feel.
	 *
	 * @return		<TT>true</TT> to use the native LAF.
	 */
	boolean useNativeLAF();

	/**
	 * @return The raw arguments passed on the command line.
	 */
	String[] getRawArguments();

	/**
	 * @return a boolean indicating whether or not to enable user interface debugging mode
	 */
	boolean getUserInterfaceDebugEnabled();

	/**
	 * @return
	 */
	List<String> getPluginList();

}