summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/State.java
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:52:47 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:52:47 +0000
commitaec0b00cb9801faa4a5093d200281763447f0696 (patch)
tree809190497f0a89624e8729319d3064c10a3b8df6 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/State.java
parente710a326314184f31cd50d4637959f44232a74ee (diff)
downloadpdf-over-aec0b00cb9801faa4a5093d200281763447f0696.tar.gz
pdf-over-aec0b00cb9801faa4a5093d200281763447f0696.tar.bz2
pdf-over-aec0b00cb9801faa4a5093d200281763447f0696.zip
State Machine refactor
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@21 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/State.java')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/State.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/State.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/State.java
new file mode 100644
index 00000000..305c5033
--- /dev/null
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/State.java
@@ -0,0 +1,77 @@
+/*
+ * 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;
+
+//Imports
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Base state class
+ */
+public abstract class State {
+
+ /**
+ * The StateMachine
+ */
+ protected StateMachine stateMachine;
+
+ /**
+ * SFL4J Logger instance
+ **/
+ @SuppressWarnings("unused")
+ private static final Logger log = LoggerFactory.getLogger(State.class);
+
+ private State nextState = null;
+
+ /**
+ * Default Workflow State constructor
+ */
+ public State(StateMachine stateMachine) {
+ this.stateMachine = stateMachine;
+ this.nextState = this;
+ }
+
+ /**
+ * Gets the next logical state or null if this their is no state transition
+ * @return the next state (or null)
+ */
+ public State nextState() {
+ return this.nextState;
+ }
+
+ /**
+ * Sets the next logical state
+ * @param state
+ */
+ protected void setNextState(State state) {
+ this.nextState = state;
+ }
+
+ /**
+ * Perform main logic for this state
+ * @param stateMachine the state machine
+ */
+ public abstract void run();
+
+ /**
+ * Update the state machine
+ */
+ public void updateStateMachine()
+ {
+ stateMachine.update();
+ }
+}