diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-30 01:04:16 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-30 01:04:16 +0000 |
| commit | f458187663613d1c89a4c2eb91fd60e5e81b9fbd (patch) | |
| tree | 4c3b6d903a5c00f2a0d295f7924fa197f493b27b /sources/simulator/VSCreateTask.java | |
| parent | ac499946aa12d48e8bf3e5d91d78708d64a73daa (diff) | |
refactored.
Diffstat (limited to 'sources/simulator/VSCreateTask.java')
| -rw-r--r-- | sources/simulator/VSCreateTask.java | 151 |
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); + } +} + |
