diff options
Diffstat (limited to 'pdf-over-gui/src/main/java/at')
21 files changed, 519 insertions, 135 deletions
| diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java index dbc61e24..378588eb 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java @@ -34,7 +34,6 @@ public class ArgumentHandler {  	/**  	 * SLF4J Logger instance  	 **/ -	@SuppressWarnings("unused")  	private static final Logger log = LoggerFactory  			.getLogger(ArgumentHandler.class); @@ -65,21 +64,27 @@ public class ArgumentHandler {  	/**  	 * Adds a CLIArgument to the handler  	 *  -	 * @param arg +	 * @param cliArgument the CLIArgument subclass to add  	 */ -	public void addCLIArgument(CLIArgument arg) { -		if (arg == null) { -			return; -		} +	public void addCLIArgument(Class<? extends CLIArgument> cliArgument) { -		String[] commandOptions = arg.getCommandOptions(); +		CLIArgument arg; +		try { +			arg = cliArgument.newInstance(); -		if (commandOptions == null) { -			return; -		} +			arg.setStateMachine(this.stateMachine); + +			String[] commandOptions = arg.getCommandOptions(); -		for (int i = 0; i < commandOptions.length; i++) { -			this.cliArguments.put(commandOptions[i], arg); +			if (commandOptions == null) { +				return; +			} + +			for (int i = 0; i < commandOptions.length; i++) { +				this.cliArguments.put(commandOptions[i], arg); +			} +		} catch (Exception e) { +			log.error("Error instantiating CLI argument" , e); //$NON-NLS-1$  		}  	} @@ -93,13 +98,11 @@ public class ArgumentHandler {  		for (int i = 0; i < args.length; i++) {  			if (this.cliArguments.containsKey(args[i])) { -				i = this.cliArguments.get(args[i]).handleArgument(args, i, -						this.stateMachine, this); +				i = this.cliArguments.get(args[i]).handleArgument(args, i, this);  			} else {  				// Assume we got the document we want to sign  				if (this.cliArguments.containsKey("-i")) { //$NON-NLS-1$ -					i = this.cliArguments.get("-i").handleArgument(args, i-1, //$NON-NLS-1$ -							this.stateMachine, this); +					i = this.cliArguments.get("-i").handleArgument(args, i-1, this); //$NON-NLS-1$  				}  			}  		} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java index 9d1f51be..b1902cb1 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/BKUArgument.java @@ -17,8 +17,6 @@ package at.asit.pdfover.gui.cliarguments;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  import at.asit.pdfover.signator.BKUs;  /** @@ -43,16 +41,14 @@ public class BKUArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) {  				BKUs argumentValue = BKUs.valueOf(args[argOffset + 1]); -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setDefaultBKU(argumentValue); +				getConfiguration().setDefaultBKUOverlay(argumentValue);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/CLIArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/CLIArgument.java index 26c3d12f..4c471118 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/CLIArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/CLIArgument.java @@ -16,17 +16,21 @@  package at.asit.pdfover.gui.cliarguments;  import at.asit.pdfover.gui.exceptions.InitializationException; +import at.asit.pdfover.gui.workflow.ConfigOverlayManipulator;  import at.asit.pdfover.gui.workflow.StateMachine; +import at.asit.pdfover.gui.workflow.Status;  /**   * CLI Argument base class   */  public abstract class CLIArgument { -	 +  	private String helpText = null; -	 +  	private String[] commandOptions = null; -	 + +	private StateMachine stateMachine; +  	/**  	 * @param commandOptions  	 * @param helpText @@ -35,7 +39,33 @@ public abstract class CLIArgument {  		this.helpText = helpText;  		this.commandOptions = commandOptions;  	} -	 + +	/** +	 * Set the state machine +	 * Used for configuration overlay manipulator and status +	 * @param stateMachine the state machine +	 */ +	protected void setStateMachine(StateMachine stateMachine) { +		this.stateMachine = stateMachine; +	} + +	/** +	 * Get the configuration overlay manipulator +	 * @return the configuration overlay manipulator +	 */ +	protected ConfigOverlayManipulator getConfiguration() { +		return this.stateMachine.getConfigOverlayManipulator(); +	} + +	/** +	 * Get the status +	 * @return the status +	 */ +	protected Status getStatus() { +		return this.stateMachine.getStatus(); +	} + +  	/**  	 * Set help text  	 *  @@ -44,7 +74,7 @@ public abstract class CLIArgument {  	protected void setHelpText(String value) {  		this.helpText = value;  	} -	 +  	/**  	 * Gets help text  	 *  @@ -53,7 +83,7 @@ public abstract class CLIArgument {  	public String getHelpText() {  		return this.helpText;  	} -	 +  	/**  	 * Set the command option in format: -...  	 *  @@ -64,7 +94,7 @@ public abstract class CLIArgument {  	protected void setCommandOptions(String[] value) {  		this.commandOptions = value;  	} -	 +  	/**  	 * Get the command option  	 *  @@ -74,7 +104,7 @@ public abstract class CLIArgument {  	public String[] getCommandOptions() {  		return this.commandOptions;  	} -	 +  	/**  	 * Invokes the argument to set stuff within the stateMachine  	 *  @@ -91,12 +121,11 @@ public abstract class CLIArgument {  	 *     offset = 1  	 *     returns 2  	 *  -	 * @param stateMachine  	 * @param args  	 * @param argOffset  	 * @param handler   	 * @return returns the argumentOffset ending the section of this Argument  	 * @throws InitializationException   	 */ -	public abstract int handleArgument(String[] args, int argOffset, StateMachine stateMachine, ArgumentHandler handler) throws InitializationException; +	public abstract int handleArgument(String[] args, int argOffset, ArgumentHandler handler) throws InitializationException;  } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java index 72d6e629..7fd3acef 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ConfigFileArgument.java @@ -21,8 +21,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  /**   * CLI Argument to set the configuration file @@ -46,16 +44,14 @@ public class ConfigFileArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) {  				String configFile = args[argOffset + 1]; -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setConfigurationFile(configFile); +				getConfiguration().setConfigurationFile(configFile);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java index 106f62dc..98401b16 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/EmblemArgument.java @@ -24,8 +24,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  /**   * CLI Argument to set the emblem file to use for signature @@ -49,7 +47,7 @@ public class EmblemArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) { @@ -62,9 +60,7 @@ public class EmblemArgument extends CLIArgument {  					throw new FileNotFoundException(emblem);  				} -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setDefaultEmblem(emblem); +				getConfiguration().setDefaultEmblemOverlay(emblem);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/HelpArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/HelpArgument.java index 21b1124f..1dd0110e 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/HelpArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/HelpArgument.java @@ -21,7 +21,6 @@ import java.util.Set;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.StateMachine;  /**   * CLI Argument to show the useage message @@ -40,7 +39,7 @@ public class HelpArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		Set<CLIArgument> arguments = handler.getArguments(); diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/InputDocumentArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/InputDocumentArgument.java index cc37c9b5..efb2c3aa 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/InputDocumentArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/InputDocumentArgument.java @@ -24,8 +24,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.StateMachine; -import at.asit.pdfover.gui.workflow.Status;  /**   * CLI Argument to set the input document to sign @@ -49,7 +47,7 @@ public class InputDocumentArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) { @@ -62,8 +60,7 @@ public class InputDocumentArgument extends CLIArgument {  					throw new FileNotFoundException(signatureDocument);  				} -				Status status = stateMachine.getStatus(); -				status.setDocument(signatureDocumentFile); +				getStatus().setDocument(signatureDocumentFile);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java index 0c1c7fc4..9e06be17 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/OutputFolderArgument.java @@ -25,8 +25,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  /**   * CLI Argument to show the usage message @@ -50,7 +48,7 @@ public class OutputFolderArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) { @@ -67,9 +65,7 @@ public class OutputFolderArgument extends CLIArgument {  					throw new IOException(outputFolderDir + Messages.getString("argument.error.output")); //$NON-NLS-1$  				} -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setDefaultOutputFolder(outputFolder); +				getConfiguration().setDefaultOutputFolderOverlay(outputFolder);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java index b522df45..b32a4edd 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PasswordArgument.java @@ -21,8 +21,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  import at.asit.pdfover.gui.workflow.states.mobilebku.ATrustHelper;  /** @@ -47,7 +45,7 @@ public class PasswordArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) { @@ -56,9 +54,7 @@ public class PasswordArgument extends CLIArgument {  				ATrustHelper.validatePassword(password); -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setDefaultMobilePassword(password); +				getConfiguration().setDefaultMobilePasswordOverlay(password);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java index 6e24c1b7..eccebb21 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/PhoneNumberArgument.java @@ -21,8 +21,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  import at.asit.pdfover.gui.workflow.states.mobilebku.ATrustHelper;  /** @@ -49,7 +47,7 @@ public class PhoneNumberArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try { @@ -59,9 +57,7 @@ public class PhoneNumberArgument extends CLIArgument {  				number = ATrustHelper.normalizeMobileNumber(number); -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setDefaultMobileNumber(number); +				getConfiguration().setDefaultMobileNumberOverlay(number);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java index 58ece2c6..cc50705e 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyHostArgument.java @@ -21,8 +21,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  /**   * CLI Argument to provide the proxy host @@ -46,16 +44,14 @@ public class ProxyHostArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) {  				String proxyHost = args[argOffset + 1]; -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setProxyHost(proxyHost); +				getConfiguration().setProxyHostOverlay(proxyHost);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java index 34ba0f48..a9bceead 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ProxyPortArgument.java @@ -22,8 +22,6 @@ import org.slf4j.LoggerFactory;  import at.asit.pdfover.gui.exceptions.InitializationException;  import at.asit.pdfover.gui.exceptions.InvalidPortException;  import at.asit.pdfover.gui.utils.Messages; -import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.StateMachine;  /**   * CLI Argument to provide the proxy port @@ -47,7 +45,7 @@ public class ProxyPortArgument extends CLIArgument {  	 */  	@Override  	public int handleArgument(String[] args, int argOffset, -			StateMachine stateMachine, ArgumentHandler handler) +			ArgumentHandler handler)  			throws InitializationException {  		try {  			if (args.length > argOffset + 1) { @@ -60,9 +58,7 @@ public class ProxyPortArgument extends CLIArgument {  					throw new InvalidPortException(port);  				} -				ConfigManipulator configManipulator = stateMachine.getConfigManipulator(); -				 -				configManipulator.setProxyPort(port); +				getConfiguration().setProxyPortOverlay(port);  				return argOffset + 1;  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java index 706ac1f6..88fcfc0d 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/ConfigurationComposite.java @@ -35,10 +35,10 @@ import at.asit.pdfover.gui.exceptions.InvalidPortException;  import at.asit.pdfover.gui.exceptions.ResumableException;  import at.asit.pdfover.gui.utils.Messages;  import at.asit.pdfover.gui.workflow.ConfigManipulator; -import at.asit.pdfover.gui.workflow.ConfigProvider;  import at.asit.pdfover.gui.workflow.ConfigurationContainer;  import at.asit.pdfover.gui.workflow.ConfigurationContainerImpl;  import at.asit.pdfover.gui.workflow.PDFSigner; +import at.asit.pdfover.gui.workflow.PersistentConfigProvider;  import at.asit.pdfover.gui.workflow.states.State;  import at.asit.pdfover.signator.SignaturePosition; @@ -212,7 +212,7 @@ public class ConfigurationComposite extends StateComposite {  	/**  	 * configuration provider  	 */ -	ConfigProvider configProvider = null; +	PersistentConfigProvider configProvider = null;  	/**  	 * simple configuration composite @@ -271,7 +271,7 @@ public class ConfigurationComposite extends StateComposite {  	 *   	 * @param provider  	 */ -	public void setConfigProvider(ConfigProvider provider) { +	public void setConfigProvider(PersistentConfigProvider provider) {  		this.configProvider = provider;  		if (this.configProvider != null) { @@ -295,28 +295,28 @@ public class ConfigurationComposite extends StateComposite {  			this.configurationContainer.setSignLocale(this.configProvider.getSignLocale());  			this.configurationContainer.setDefaultBKU(this.configProvider -					.getDefaultBKU()); +					.getDefaultBKUPersistent());  			try {  				this.configurationContainer.setEmblem(this.configProvider -						.getDefaultEmblem()); +						.getDefaultEmblemPersistent());  			} catch (InvalidEmblemFile e) {  				log.error("Failed to set emblem!", e); //$NON-NLS-1$  			}  			try {  				this.configurationContainer.setMobileNumber(this.configProvider -						.getDefaultMobileNumber()); +						.getDefaultMobileNumberPersistent());  			} catch (InvalidNumberException e) {  				log.error("Failed to set mobile phone number!", e); //$NON-NLS-1$  			}  			this.configurationContainer.setOutputFolder(this.configProvider -					.getDefaultOutputFolder()); +					.getDefaultOutputFolderPersistent());  			this.configurationContainer.setProxyHost(this.configProvider -					.getProxyHost()); +					.getProxyHostPersistent());  			try {  				this.configurationContainer.setProxyPort(this.configProvider -						.getProxyPort()); +						.getProxyPortPersistent());  			} catch (InvalidPortException e) {  				log.error("Failed to set proxy port!", e); //$NON-NLS-1$  			} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java index b5cda279..80754f4b 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigManipulator.java @@ -76,12 +76,6 @@ public interface ConfigManipulator {  	public void setProxyPort(int port);  	/** -	 * Sets the configuration file -	 * @param configurationFile -	 */ -	public void setConfigurationFile(String configurationFile); - -	/**  	 * Sets the default output folder  	 * @param outputFolder the default output folder  	 */ @@ -94,12 +88,6 @@ public interface ConfigManipulator {  	public void setSignatureNote(String note);  	/** -	 * Saves the current configuration to the current configuration file -	 * @throws IOException  -	 */ -	public void saveCurrentConfiguration() throws IOException; - -	/**  	 * Sets the locale to be used  	 * @param locale the locale  	 */ @@ -116,4 +104,10 @@ public interface ConfigManipulator {  	 * @param size a Point describing the size  	 */  	public void setMainWindowSize(Point size); + +	/** +	 * Saves the current configuration to the current configuration file +	 * @throws IOException +	 */ +	public void saveCurrentConfiguration() throws IOException;  } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigOverlayManipulator.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigOverlayManipulator.java new file mode 100644 index 00000000..a31309f3 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigOverlayManipulator.java @@ -0,0 +1,73 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow; + +import at.asit.pdfover.signator.BKUs; + +/** + * An interface for setting the configuration overlay + *  + * This overlay overrides the actual configuration but will not be saved + */ +public interface ConfigOverlayManipulator { +	/** +	 * Sets the default bku type +	 * @param bku the bku type +	 */ +	public void setDefaultBKUOverlay(BKUs bku); + +	/** +	 * Sets the default mobile number +	 * @param number the default mobile number +	 */ +	public void setDefaultMobileNumberOverlay(String number); + +	/** +	 * Sets the default password +	 * @param password the default password +	 */ +	public void setDefaultMobilePasswordOverlay(String password); + +	/** +	 * Sets the default emblem +	 * @param emblem the default emblem +	 */ +	public void setDefaultEmblemOverlay(String emblem); + +	/** +	 * Sets the proxy host +	 * @param host the proxy host +	 */ +	public void setProxyHostOverlay(String host); + +	/** +	 * Sets the proxy port +	 * @param port the proxy port +	 */ +	public void setProxyPortOverlay(int port); + +	/** +	 * Sets the default output folder +	 * @param outputFolder the default output folder +	 */ +	public void setDefaultOutputFolderOverlay(String outputFolder); + +	/** +	 * Sets the configuration file +	 * @param configurationFile +	 */ +	public void setConfigurationFile(String configurationFile); +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java index 81749886..ea5e2629 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/ConfigProviderImpl.java @@ -41,7 +41,8 @@ import at.asit.pdfover.signator.SignaturePosition;  /**   * Implementation of the configuration provider and manipulator   */ -public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator { +public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator, +		ConfigOverlayManipulator, PersistentConfigProvider {  	/**  	 * SLF4J Logger instance  	 **/ @@ -57,11 +58,14 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	private ConfigurationContainer configuration; +	private ConfigurationContainer configurationOverlay; +  	/**  	 * Constructor  	 */  	public ConfigProviderImpl() {  		this.configuration = new ConfigurationContainerImpl(); +		this.configurationOverlay = new ConfigurationContainerImpl();  	}  	/* @@ -257,14 +261,14 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		Properties props = new Properties();  		props.clear(); -		props.setProperty(Constants.CFG_BKU, this.getDefaultBKU().toString()); -		props.setProperty(Constants.CFG_PROXY_HOST, this.getProxyHost()); +		props.setProperty(Constants.CFG_BKU, this.getDefaultBKUPersistent().toString()); +		props.setProperty(Constants.CFG_PROXY_HOST, this.getProxyHostPersistent());  		props.setProperty(Constants.CFG_PROXY_PORT, -				Integer.toString(this.getProxyPort())); -		props.setProperty(Constants.CFG_EMBLEM, this.getDefaultEmblem()); +				Integer.toString(this.getProxyPortPersistent())); +		props.setProperty(Constants.CFG_EMBLEM, this.getDefaultEmblemPersistent());  		props.setProperty(Constants.CFG_SIGNATURE_NOTE, this.getSignatureNote()); -		props.setProperty(Constants.CFG_MOBILE_NUMBER, this.getDefaultMobileNumber()); -		props.setProperty(Constants.CFG_OUTPUT_FOLDER, this.getDefaultOutputFolder()); +		props.setProperty(Constants.CFG_MOBILE_NUMBER, this.getDefaultMobileNumberPersistent()); +		props.setProperty(Constants.CFG_OUTPUT_FOLDER, this.getDefaultOutputFolderPersistent());  		props.setProperty(Constants.CFG_SIGNATURE_PLACEHOLDER_TRANSPARENCY,  				Integer.toString(this.getPlaceholderTransparency())); @@ -345,6 +349,15 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		this.configuration.setDefaultBKU(bku);  	} +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultBKUOverlay(at.asit.pdfover.signator.BKUs) +	 */ +	@Override +	public void setDefaultBKUOverlay(BKUs bku) { +		this.configurationOverlay.setDefaultBKU(bku); +		 +	} +  	/*  	 * (non-Javadoc)  	 *  @@ -352,6 +365,17 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	 */  	@Override  	public BKUs getDefaultBKU() { +		BKUs bku = this.configurationOverlay.getDefaultBKU(); +		if (bku == BKUs.NONE) +			bku = this.configuration.getDefaultBKU(); +		return bku; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultBKUPersistent() +	 */ +	@Override +	public BKUs getDefaultBKUPersistent() {  		return this.configuration.getDefaultBKU();  	} @@ -423,6 +447,27 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		}  	} +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultMobileNumberOverlay(java.lang.String) +	 */ +	@Override +	public void setDefaultMobileNumberOverlay(String number) { +		try { +			if (number == null || number.trim().isEmpty()) { +				this.configurationOverlay.setMobileNumber(STRING_EMPTY); +			} else { +				this.configurationOverlay.setMobileNumber(number); +			} +		} catch (InvalidNumberException e) { +			log.error("Error setting mobile number", e); //$NON-NLS-1$ +			try { +				this.configurationOverlay.setMobileNumber(STRING_EMPTY); +			} catch (InvalidNumberException e1) { +				// Ignore +			} +		} +	} +  	/*  	 * (non-Javadoc)  	 *  @@ -430,6 +475,17 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	 */  	@Override  	public String getDefaultMobileNumber() { +		String number = this.configurationOverlay.getMobileNumber(); +		if (number == null) +			number = this.configuration.getMobileNumber(); +		return number; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultMobileNumberPersistent() +	 */ +	@Override +	public String getDefaultMobileNumberPersistent() {  		return this.configuration.getMobileNumber();  	} @@ -448,6 +504,18 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		}  	} +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultMobilePasswordOverlay(java.lang.String) +	 */ +	@Override +	public void setDefaultMobilePasswordOverlay(String password) { +		if (password == null || password.trim().isEmpty()) { +			this.configurationOverlay.setMobilePassword(STRING_EMPTY); +		} else { +			this.configurationOverlay.setMobilePassword(password); +		} +	} +  	/*  	 * (non-Javadoc)  	 *  @@ -455,6 +523,17 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	 */  	@Override  	public String getDefaultMobilePassword() { +		String password = this.configurationOverlay.getMobilePassword(); +		if (password == null) +			password = this.configuration.getMobilePassword(); +		return password; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultMobilePasswordPersistent() +	 */ +	@Override +	public String getDefaultMobilePasswordPersistent() {  		return this.configuration.getMobilePassword();  	} @@ -482,6 +561,27 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		}  	} +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultEmblemOverlay(java.lang.String) +	 */ +	@Override +	public void setDefaultEmblemOverlay(String emblem) { +		try { +			if (emblem == null || emblem.trim().isEmpty()) { +				this.configurationOverlay.setEmblem(STRING_EMPTY); +			} else { +				this.configurationOverlay.setEmblem(emblem); +			} +		} catch (InvalidEmblemFile e) { +			log.error("Error setting emblem file", e); //$NON-NLS-1$ +			try { +				this.configurationOverlay.setEmblem(STRING_EMPTY); +			} catch (InvalidEmblemFile e1) { +				// Ignore +			} +		} +	} +  	/*  	 * (non-Javadoc)  	 *  @@ -489,6 +589,17 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	 */  	@Override  	public String getDefaultEmblem() { +		String emblem = this.configurationOverlay.getEmblem(); +		if (emblem == null) +			emblem = this.configuration.getEmblem(); +		return emblem; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultEmblemPersistent() +	 */ +	@Override +	public String getDefaultEmblemPersistent() {  		return this.configuration.getEmblem();  	} @@ -507,6 +618,18 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		}  	} +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setProxyHostOverlay(java.lang.String) +	 */ +	@Override +	public void setProxyHostOverlay(String host) { +		if (host == null || host.trim().isEmpty()) { +			this.configurationOverlay.setProxyHost(STRING_EMPTY); +		} else { +			this.configurationOverlay.setProxyHost(host); +		} +	} +  	/*  	 * (non-Javadoc)  	 *  @@ -514,6 +637,17 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	 */  	@Override  	public String getProxyHost() { +		String host = this.configurationOverlay.getProxyHost(); +		if (host == null) +			host = this.configuration.getProxyHost(); +		return host; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getProxyHostPersistent() +	 */ +	@Override +	public String getProxyHostPersistent() {  		return this.configuration.getProxyHost();  	} @@ -533,6 +667,19 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		}  	} +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setProxyPortOverlay(int) +	 */ +	@Override +	public void setProxyPortOverlay(int port) { +		try { +			this.configurationOverlay.setProxyPort(port); +		} catch (InvalidPortException e) { +			log.error("Error setting proxy port" , e); //$NON-NLS-1$ +			// ignore +		} +	} +  	/*  	 * (non-Javadoc)  	 *  @@ -540,6 +687,17 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	 */  	@Override  	public int getProxyPort() { +		int port = this.configurationOverlay.getProxyPort(); +		if (port == -1) +			port = this.configuration.getProxyPort(); +		return this.configuration.getProxyPort(); +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getProxyPortPersistent() +	 */ +	@Override +	public int getProxyPortPersistent() {  		return this.configuration.getProxyPort();  	} @@ -559,6 +717,18 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  		}  	} +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.ConfigOverlayManipulator#setDefaultOutputFolderOverlay(java.lang.String) +	 */ +	@Override +	public void setDefaultOutputFolderOverlay(String outputFolder) { +		if (outputFolder == null || outputFolder.trim().isEmpty()) { +			this.configurationOverlay.setOutputFolder(STRING_EMPTY); +		} else { +			this.configurationOverlay.setOutputFolder(outputFolder); +		} +	} +  	/*  	 * (non-Javadoc)  	 *  @@ -566,6 +736,17 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	 */  	@Override  	public String getDefaultOutputFolder() { +		String outputFolder = this.configurationOverlay.getOutputFolder(); +		if (outputFolder == null) +			outputFolder = this.configuration.getOutputFolder(); +		return outputFolder; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.PersistentConfigProvider#getDefaultOutputFolderPersistent() +	 */ +	@Override +	public String getDefaultOutputFolderPersistent() {  		return this.configuration.getOutputFolder();  	} @@ -662,5 +843,4 @@ public class ConfigProviderImpl implements ConfigProvider, ConfigManipulator {  	public Point getMainWindowSize() {  		return this.configuration.getMainWindowSize();  	} -  } diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/PersistentConfigProvider.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/PersistentConfigProvider.java new file mode 100644 index 00000000..c9c02b63 --- /dev/null +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/PersistentConfigProvider.java @@ -0,0 +1,116 @@ +/* + * Copyright 2012 by A-SIT, Secure Information Technology Center Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://joinup.ec.europa.eu/software/page/eupl + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + */ +package at.asit.pdfover.gui.workflow; + +import java.util.Locale; + +import org.eclipse.swt.graphics.Point; + +import at.asit.pdfover.signator.BKUs; +import at.asit.pdfover.signator.SignaturePosition; + +/** + * An interface for reading the persistent configuration + *  + * This reads the configuration that will be saved + */ +public interface PersistentConfigProvider { +	/** +	 * Get the default configured BKU +	 * @return the default configured BKU +	 */ +	public BKUs getDefaultBKUPersistent(); + +	/** +	 * Gets the default Mobile number +	 * @return the default mobile number +	 */ +	public String getDefaultMobileNumberPersistent(); + +	/** +	 * Gets the password to use for Mobile BKU +	 * @return the password +	 */ +	public String getDefaultMobilePasswordPersistent(); + +	/** +	 * Gets the filename of the default emblem +	 * @return the emblem +	 */ +	public String getDefaultEmblemPersistent(); +	 +	/** +	 * Gets the proxy host +	 * @return the proxy hostname or ip address +	 */ +	public String getProxyHostPersistent(); + +	/** +	 * Gets the proxy port +	 * @return the proxy port +	 */ +	public int getProxyPortPersistent(); + +	/** +	 * Gets the default output folder for signed documents +	 * @return the default output folder  +	 */ +	public String getDefaultOutputFolderPersistent(); + +	// Declare the other configuration getters for convenience + +	/** +	 * Get the default configured SignaturePosition +	 * @return the default configured SignaturePosition or null if not configured +	 */ +	public SignaturePosition getDefaultSignaturePosition(); + +	/** +	 * Get the transparency of the signature placeholder +	 * @return the transparency of the signature placeholder +	 */ +	public int getPlaceholderTransparency(); + +	/** +	 * Gets the mobile BKU URL +	 * @return the mobile BKU URL +	 */ +	public String getMobileBKUURL(); + +	/** +	 * Get the signature note text to use +	 * @return the signature note text +	 */ +	public String getSignatureNote(); + +	/** +	 * Gets the configured locale +	 * @return the configured locale +	 */ +	public Locale getConfigLocale(); + +	/** +	 * Gets the configured locale +	 * @return the configured locale +	 */ +	public Locale getSignLocale(); + +	/** +	 * Gets the configured MainWindow size +	 * @return the configured MainWindow size +	 */ +	public Point getMainWindowSize(); +} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java index 9bcc757e..a054daaf 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachine.java @@ -28,11 +28,23 @@ public interface StateMachine {  	public ConfigProvider getConfigProvider();  	/** +	 * Get the PersistentConfigProvider +	 * @return the PersistentConfigProvider +	 */ +	public PersistentConfigProvider getPersistentConfigProvider(); + +	/**  	 * Gets the Config Manipulator  	 * @return the config manipulator  	 */  	public ConfigManipulator getConfigManipulator(); -	 + +	/** +	 * Gets the Config Overlay Manipulator +	 * @return the config overlay manipulator +	 */ +	public ConfigOverlayManipulator getConfigOverlayManipulator(); +  	/**  	 * Get the PDF Signer  	 * @return the PDF Signer diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java index 18943cbe..1da947f9 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/StateMachineImpl.java @@ -268,7 +268,6 @@ public class StateMachineImpl implements StateMachine, GUIProvider {  	/*  	 * (non-Javadoc) -	 *   	 * @see at.asit.pdfover.gui.workflow.StateMachine#getConfigProvider()  	 */  	@Override @@ -278,7 +277,31 @@ public class StateMachineImpl implements StateMachine, GUIProvider {  	/*  	 * (non-Javadoc) -	 *  +	 * @see at.asit.pdfover.gui.workflow.StateMachine#getConfigProvider() +	 */ +	@Override +	public PersistentConfigProvider getPersistentConfigProvider() { +		return this.configProvider; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.StateMachine#getConfigManipulator() +	 */ +	@Override +	public ConfigManipulator getConfigManipulator() { +		return this.configProvider; +	} + +	/* (non-Javadoc) +	 * @see at.asit.pdfover.gui.workflow.StateMachine#getConfigOverlayManipulator() +	 */ +	@Override +	public ConfigOverlayManipulator getConfigOverlayManipulator() { +		return this.configProvider; +	} + +	/* +	 * (non-Javadoc)  	 * @see at.asit.pdfover.gui.workflow.StateMachine#getStatus()  	 */  	@Override @@ -288,7 +311,6 @@ public class StateMachineImpl implements StateMachine, GUIProvider {  	/*  	 * (non-Javadoc) -	 *   	 * @see at.asit.pdfover.gui.workflow.StateMachine#getPDFSigner()  	 */  	@Override @@ -298,7 +320,6 @@ public class StateMachineImpl implements StateMachine, GUIProvider {  	/*  	 * (non-Javadoc) -	 *   	 * @see at.asit.pdfover.gui.workflow.StateMachine#getGUIProvider()  	 */  	@Override @@ -333,14 +354,6 @@ public class StateMachineImpl implements StateMachine, GUIProvider {  	}  	/* (non-Javadoc) -	 * @see at.asit.pdfover.gui.workflow.StateMachine#getConfigManipulator() -	 */ -	@Override -	public ConfigManipulator getConfigManipulator() { -		return this.configProvider; -	} - -	/* (non-Javadoc)  	 * @see at.asit.pdfover.gui.workflow.GUIProvider#getMainShell()  	 */  	@Override diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java index 57a7aa9b..47c21063 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/ConfigurationUIState.java @@ -45,7 +45,7 @@ public class ConfigurationUIState extends State {  			this.configurationComposite =  					this.stateMachine.getGUIProvider().createComposite(ConfigurationComposite.class, SWT.RESIZE, this);  			this.configurationComposite.setConfigManipulator(this.stateMachine.getConfigManipulator()); -			this.configurationComposite.setConfigProvider(this.stateMachine.getConfigProvider()); +			this.configurationComposite.setConfigProvider(this.stateMachine.getPersistentConfigProvider());  			this.configurationComposite.setSigner(this.stateMachine.getPDFSigner());  		} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java index e726d7b4..955d125a 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareConfigurationState.java @@ -71,20 +71,20 @@ public class PrepareConfigurationState extends State {  	public PrepareConfigurationState(StateMachine stateMachine) {  		super(stateMachine);  		this.handler = new ArgumentHandler(this.stateMachine); -		this.handler.addCLIArgument(new HelpArgument()); -		this.handler.addCLIArgument(new BKUArgument()); -		this.handler.addCLIArgument(new PhoneNumberArgument()); -		this.handler.addCLIArgument(new EmblemArgument()); -		this.handler.addCLIArgument(new PasswordArgument()); -		this.handler.addCLIArgument(new ProxyHostArgument()); -		this.handler.addCLIArgument(new ProxyPortArgument()); -		this.handler.addCLIArgument(new OutputFolderArgument()); -		this.handler.addCLIArgument(new InputDocumentArgument()); +		this.handler.addCLIArgument(HelpArgument.class); +		this.handler.addCLIArgument(BKUArgument.class); +		this.handler.addCLIArgument(PhoneNumberArgument.class); +		this.handler.addCLIArgument(EmblemArgument.class); +		this.handler.addCLIArgument(PasswordArgument.class); +		this.handler.addCLIArgument(ProxyHostArgument.class); +		this.handler.addCLIArgument(ProxyPortArgument.class); +		this.handler.addCLIArgument(OutputFolderArgument.class); +		this.handler.addCLIArgument(InputDocumentArgument.class);  		// adding config file argument to this handler so it appears in help -		this.handler.addCLIArgument(new ConfigFileArgument()); +		this.handler.addCLIArgument(ConfigFileArgument.class);  		this.configFileHandler = new ArgumentHandler(this.stateMachine); -		this.configFileHandler.addCLIArgument(new ConfigFileArgument()); +		this.configFileHandler.addCLIArgument(ConfigFileArgument.class);  	}  	private void initializeFromConfigurationFile(String filename) | 
