summaryrefslogtreecommitdiff
path: root/VS-Sim-Sources/sources/simulator/VSCreateTask.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-08-15 04:09:42 +0000
committerPaul Buetow <paul@buetow.org>2008-08-15 04:09:42 +0000
commitafed274c10a93957f82a009824cafe8d83aa68a8 (patch)
tree4a4d3980a3d9eb32bf7be443a83afe4c21dcdf55 /VS-Sim-Sources/sources/simulator/VSCreateTask.java
new branches
Diffstat (limited to 'VS-Sim-Sources/sources/simulator/VSCreateTask.java')
-rw-r--r--VS-Sim-Sources/sources/simulator/VSCreateTask.java203
1 files changed, 203 insertions, 0 deletions
diff --git a/VS-Sim-Sources/sources/simulator/VSCreateTask.java b/VS-Sim-Sources/sources/simulator/VSCreateTask.java
new file mode 100644
index 0000000..260980a
--- /dev/null
+++ b/VS-Sim-Sources/sources/simulator/VSCreateTask.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2008 Paul C. Buetow, vs@dev.buetow.org
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * All icons of the icons/ folder are under a Creative Commons
+ * Attribution-Noncommercial-Share Alike License a CC-by-nc-sa.
+ *
+ * The icon's homepage is http://code.google.com/p/ultimate-gnome/
+ */
+
+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 create task menu string. */
+ private String menuText;
+
+ /** 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 menuText the menu text
+ * @param eventClassname the event classname
+ */
+ public VSCreateTask(String menuText, String eventClassname) {
+ this.menuText = menuText;
+ this.eventClassname = eventClassname;
+ }
+
+ /**
+ * Instantiates a new VSCreateTask dummy object.
+ *
+ * @param menuText the menu text
+ */
+ public VSCreateTask(String menuText) {
+ this.menuText = menuText;
+ this.eventClassname = null;
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * Sets if it is a client protocol.
+ *
+ * @param isClientProtocol the is client protocol
+ */
+ public void isClientProtocol(boolean isClientProtocol) {
+ this.isClientProtocol = isClientProtocol;
+ }
+
+ /**
+ * Sets if it is a client request.
+ *
+ * @param isRequest the is client request
+ */
+ public void isRequest(boolean isRequest) {
+ this.isRequest = isRequest;
+ }
+
+ /**
+ * Checks if it is a dummy object..
+ *
+ * @return true, if dummy
+ */
+ public boolean isDummy() {
+ return eventClassname == null;
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Gets the create tasks menu text.
+ *
+ * @return The text
+ */
+ public String getMenuText() {
+ return menuText;
+ }
+
+ /**
+ * Creates the task.
+ *
+ * @param process the process
+ * @param time the time
+ * @param localTimedTask the local timed task
+ *
+ * @return the new task
+ */
+ public VSTask createTask(VSInternalProcess 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);
+ }
+}
+