summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-30 01:04:16 +0000
committerPaul Buetow <paul@buetow.org>2008-05-30 01:04:16 +0000
commitf458187663613d1c89a4c2eb91fd60e5e81b9fbd (patch)
tree4c3b6d903a5c00f2a0d295f7924fa197f493b27b
parentac499946aa12d48e8bf3e5d91d78708d64a73daa (diff)
refactored.
-rw-r--r--sources/simulator/VSCreateTask.java151
1 files changed, 151 insertions, 0 deletions
diff --git a/sources/simulator/VSCreateTask.java b/sources/simulator/VSCreateTask.java
new file mode 100644
index 0000000..96bb93e
--- /dev/null
+++ b/sources/simulator/VSCreateTask.java
@@ -0,0 +1,151 @@
+/*
+ * VS is (c) 2008 by Paul C. Buetow
+ * vs@dev.buetow.org
+ */
+package simulator;
+
+import core.*;
+import events.*;
+import events.internal.*;
+
+/**
+ * The Class VSCreateTask. An object of this class represents how new
+ * VSTask objects are to be created using JComboBox selections of the
+ * GUI editor..
+ *
+ * @author Paul C. Buetow
+ */
+public class VSCreateTask {
+ /** the serial version uid */
+ private static final long serialversionuid = 1l;
+
+ /** The event classname. */
+ private String eventClassname;
+
+ /** The protocol classname. */
+ private String protocolClassname;
+
+ /** The shortname. */
+ private String shortname;
+
+ /** The task is a protocol activation. */
+ private boolean isProtocolActivation;
+
+ /** The task is a protocol deactivation. */
+ private boolean isProtocolDeactivation;
+
+ /** The task is a client protocol. */
+ private boolean isClientProtocol;
+
+ /** True, if the task is a client request. false, if the task is a
+ * server request
+ */
+ private boolean isRequest;
+
+ /**
+ * Instantiates a new VSCreateTask object.
+ *
+ * @param eventClassname the event classname
+ */
+ public VSCreateTask(String eventClassname) {
+ this.eventClassname = eventClassname;
+ }
+
+ /**
+ * Sets if it is a protocol activation task.
+ *
+ * @param isProtocolActivation true, if it is a protocol activation
+ * task.
+ */
+ public void isProtocolActivation(boolean isProtocolActivation) {
+ this.isProtocolActivation = isProtocolActivation;
+
+ if (isProtocolActivation)
+ isProtocolDeactivation(false);
+ }
+
+ /**
+ * Sets if it is a protocol deactivation task.
+ *
+ * @param isProtocolDeactivation true, if it is a protocol deactivation
+ * task.
+ */
+ public void isProtocolDeactivation(boolean isProtocolDeactivation) {
+ this.isProtocolDeactivation = isProtocolDeactivation;
+
+ if (isProtocolDeactivation)
+ isProtocolActivation(false);
+ }
+
+ /**
+ * Checks if is client protocol.
+ *
+ * @param isClientProtocol the is client protocol
+ */
+ public void isClientProtocol(boolean isClientProtocol) {
+ this.isClientProtocol = isClientProtocol;
+ }
+
+ /**
+ * Checks if is client request.
+ *
+ * @param isRequest the is client request
+ */
+ public void isRequest(boolean isRequest) {
+ this.isRequest = isRequest;
+ }
+
+ /**
+ * Sets the protocol classname.
+ *
+ * @param protocolClassname the protocol classname
+ */
+ public void setProtocolClassname(String protocolClassname) {
+ this.protocolClassname = protocolClassname;
+ }
+
+ /**
+ * Sets the shortname.
+ *
+ * @param shortname the shortname
+ */
+ public void setShortname(String shortname) {
+ this.shortname = shortname;
+ }
+
+ /**
+ * Creates the task.
+ *
+ * @param process the process
+ * @param time the time
+ * @param localTimedTask the local timed task
+ *
+ * @return the new task
+ */
+ public VSTask createTask(VSProcess process, long time,
+ boolean localTimedTask) {
+ VSAbstractEvent event = null;
+
+ if (isRequest) {
+ event = process.getProtocolObject(eventClassname);
+
+ } else {
+ event = VSRegisteredEvents.createEventInstanceByClassname(
+ eventClassname, process);
+ }
+
+ event.init(process);
+ if (shortname != null)
+ event.setShortname(shortname);
+
+ if (isProtocolActivation || isProtocolDeactivation) {
+ VSProtocolEvent protocolEvent = (VSProtocolEvent) event;
+ protocolEvent.setProtocolClassname(protocolClassname);
+ protocolEvent.isProtocolActivation(isProtocolActivation);
+ protocolEvent.isClientProtocol(isClientProtocol);
+ }
+
+ return new VSTask(time, process, event, localTimedTask);
+ }
+}
+