summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:56:29 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:56:29 +0000
commit12fe32df6f5b17abb5d1f9bac9f5fb87b961f0c2 (patch)
tree814ddcd71dee2298e62825a615e37da72cdc123a /pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java
parent9cdc13fdb999f0e3482e22c1eb63ed0ee4d72c6f (diff)
downloadpdf-over-12fe32df6f5b17abb5d1f9bac9f5fb87b961f0c2.tar.gz
pdf-over-12fe32df6f5b17abb5d1f9bac9f5fb87b961f0c2.tar.bz2
pdf-over-12fe32df6f5b17abb5d1f9bac9f5fb87b961f0c2.zip
Configuration Changes
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@49 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java115
1 files changed, 115 insertions, 0 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
new file mode 100644
index 00000000..f43b636c
--- /dev/null
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/cliarguments/ArgumentHandler.java
@@ -0,0 +1,115 @@
+/*
+ * 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.cliarguments;
+
+// Imports
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.asit.pdfover.gui.exceptions.InitializationException;
+import at.asit.pdfover.gui.workflow.StateMachine;
+
+/**
+ *
+ */
+public class ArgumentHandler {
+ /**
+ * SLF4J Logger instance
+ **/
+ @SuppressWarnings("unused")
+ private static final Logger log = LoggerFactory
+ .getLogger(ArgumentHandler.class);
+
+ private Map<String, CLIArgument> cliArguments = new HashMap<String, CLIArgument>();
+
+ private StateMachine stateMachine = null;
+
+ private boolean requiredExit = false;
+
+ /**
+ * Constructor
+ * @param stateMachine
+ */
+ public ArgumentHandler(StateMachine stateMachine) {
+ this.stateMachine = stateMachine;
+ }
+
+ /**
+ * Gets available Arguments
+ * @return the list of available arguments
+ */
+ public Set<CLIArgument> getArguments() {
+ return new HashSet<CLIArgument>(this.cliArguments.values());
+ }
+
+ /**
+ * Adds a CLIArgument to the handler
+ *
+ * @param arg
+ */
+ public void addCLIArgument(CLIArgument arg) {
+ if(arg == null) {
+ return;
+ }
+
+ String[] commandOptions = arg.getCommandOptions();
+
+ if(commandOptions == null) {
+ return;
+ }
+
+ for(int i = 0; i < commandOptions.length; i++)
+ {
+ this.cliArguments.put(commandOptions[i], arg);
+ }
+ }
+
+ /**
+ * Handle CLI Arguments
+ *
+ * @param args
+ * @throws InitializationException
+ */
+ public void handleArguments(String[] args) throws InitializationException {
+ for(int i = 0; i < args.length; i++) {
+ if(this.cliArguments.containsKey(args[i])) {
+ this.cliArguments.get(args[i]).handleArgument(args, i, this.stateMachine, this);
+ }
+ }
+ }
+
+ /**
+ * Set by an cli argument if it wants the program to exit
+ * @param requireExit
+ */
+ public void setRequireExit(boolean requireExit) {
+ this.requiredExit = requireExit;
+ }
+
+ /**
+ * Checks if one argument required the program to exit again
+ *
+ * @return true or false
+ */
+ public boolean IsRequireExit() {
+ return this.requiredExit;
+ }
+}