diff options
Diffstat (limited to 'sources/events')
| -rw-r--r-- | sources/events/VSAbstractEvent.java | 14 | ||||
| -rw-r--r-- | sources/events/VSCopyableEvent.java (renamed from sources/events/VSNotCopyableEvent.java) | 8 | ||||
| -rw-r--r-- | sources/events/implementations/VSProcessCrashEvent.java | 11 | ||||
| -rw-r--r-- | sources/events/implementations/VSProcessRecoverEvent.java | 11 | ||||
| -rw-r--r-- | sources/events/internal/VSMessageReceiveEvent.java | 3 | ||||
| -rw-r--r-- | sources/events/internal/VSProtocolEvent.java | 20 | ||||
| -rw-r--r-- | sources/events/internal/VSProtocolScheduleEvent.java | 2 |
7 files changed, 46 insertions, 23 deletions
diff --git a/sources/events/VSAbstractEvent.java b/sources/events/VSAbstractEvent.java index 834b691..263f21f 100644 --- a/sources/events/VSAbstractEvent.java +++ b/sources/events/VSAbstractEvent.java @@ -55,17 +55,21 @@ abstract public class VSAbstractEvent extends VSPrefs { private String eventClassname; /** - * Creates a copy of the event. + * Creates a copy of the event. * * @return The copy */ final public VSAbstractEvent getCopy() throws VSEventNotCopyableException { - VSAbstractEvent copy = null + if (!(this instanceof VSCopyableEvent)) + throw new VSEventNotCopyableException(eventShortname); - if (this instanceof VSCopyableEvent) - throw new VSEventNotCopyableException(eventShortname); + VSAbstractEvent copy = + VSRegisteredEvents.createEventInstanceByClassname( + eventClassname, process); - return copy; + ((VSCopyableEvent) this).initCopy(copy); + + return copy; } /** diff --git a/sources/events/VSNotCopyableEvent.java b/sources/events/VSCopyableEvent.java index 49dde93..0ad6b24 100644 --- a/sources/events/VSNotCopyableEvent.java +++ b/sources/events/VSCopyableEvent.java @@ -26,9 +26,15 @@ package events; /** * The interface VSCopyableEvent, all events which implement this class - * are nor copyable. + * are copyable. * * @author Paul C. Buetow */ public interface VSCopyableEvent { + /** + * Fills a copy of this event with its values + * + * @param copy The copy + */ + public void initCopy(VSAbstractEvent copy); } diff --git a/sources/events/implementations/VSProcessCrashEvent.java b/sources/events/implementations/VSProcessCrashEvent.java index c281500..e5c99f5 100644 --- a/sources/events/implementations/VSProcessCrashEvent.java +++ b/sources/events/implementations/VSProcessCrashEvent.java @@ -23,18 +23,25 @@ package events.implementations; -import events.VSAbstractEvent; +import events.*; /** * The class VSProcessCrashEvent. This event makes a process to crash. * * @author Paul C. Buetow */ -public class VSProcessCrashEvent extends VSAbstractEvent { +public class VSProcessCrashEvent extends VSAbstractEvent + implements VSCopyableEvent { /** The serial version uid */ private static final long serialVersionUID = 1L; /* (non-Javadoc) + * @see events.VSCopyableEvent#initCopy(events.VSAbstractEvent) + */ + public void initCopy(VSAbstractEvent copy) { + } + + /* (non-Javadoc) * @see events.VSAbstractEvent#onInit() */ public void onInit() { diff --git a/sources/events/implementations/VSProcessRecoverEvent.java b/sources/events/implementations/VSProcessRecoverEvent.java index 43479cf..600fcf7 100644 --- a/sources/events/implementations/VSProcessRecoverEvent.java +++ b/sources/events/implementations/VSProcessRecoverEvent.java @@ -23,7 +23,7 @@ package events.implementations; -import events.VSAbstractEvent; +import events.*; /** * The class VSProcessRecoverEvent. This event makes a process to recover if @@ -31,11 +31,18 @@ import events.VSAbstractEvent; * * @author Paul C. Buetow */ -public class VSProcessRecoverEvent extends VSAbstractEvent { +public class VSProcessRecoverEvent extends VSAbstractEvent + implements VSCopyableEvent { /** The serial version uid */ private static final long serialVersionUID = 1L; /* (non-Javadoc) + * @see events.VSCopyableEvent#initCopy(events.VSAbstractEvent) + */ + public void initCopy(VSAbstractEvent copy) { + } + + /* (non-Javadoc) * @see events.VSAbstractEvent#onInit() */ public void onInit() { diff --git a/sources/events/internal/VSMessageReceiveEvent.java b/sources/events/internal/VSMessageReceiveEvent.java index 7755b60..825e500 100644 --- a/sources/events/internal/VSMessageReceiveEvent.java +++ b/sources/events/internal/VSMessageReceiveEvent.java @@ -26,7 +26,6 @@ package events.internal; import java.io.*; import core.VSMessage; -import events.VSCopyableEvent; import protocols.VSAbstractProtocol; import serialize.VSNotSerializable; @@ -37,7 +36,7 @@ import serialize.VSNotSerializable; * @author Paul C. Buetow */ public class VSMessageReceiveEvent extends VSAbstractInternalEvent - implements VSNotSerializable, VSCopyableEvent { + implements VSNotSerializable { /** The serioal version uid */ private static final long serialVersionUID = 1L; diff --git a/sources/events/internal/VSProtocolEvent.java b/sources/events/internal/VSProtocolEvent.java index d0a12cc..1ccb700 100644 --- a/sources/events/internal/VSProtocolEvent.java +++ b/sources/events/internal/VSProtocolEvent.java @@ -38,7 +38,8 @@ import serialize.VSSerialize; * * @author Paul C. Buetow */ -public class VSProtocolEvent extends VSAbstractInternalEvent { +public class VSProtocolEvent extends VSAbstractInternalEvent + implements VSCopyableEvent { /** The serial version uid */ private static final long serialVersionUID = 1L; @@ -51,16 +52,15 @@ public class VSProtocolEvent extends VSAbstractInternalEvent { /** The event is a protocol activation if true. Else it is a deactivation */ private boolean isProtocolActivation; - /** - * Fills a copy of this event with its values - * - * @param copy The copy + /* (non-Javadoc) + * @see events.VSCopyableEvent#initCopy(events.VSAbstractEvent) */ - public void initCopy(VSProtocolEvent copy) { - copy.isClientProtocol(isClientProtocol); - copy.isProtocolActivation(isProtocolActivation); - copy.setProtocolClassname(protocolClassname); - } + public void initCopy(VSAbstractEvent copy) { + VSProtocolEvent protocolEventCopy = (VSProtocolEvent) copy; + protocolEventCopy.isClientProtocol(isClientProtocol); + protocolEventCopy.isProtocolActivation(isProtocolActivation); + protocolEventCopy.setProtocolClassname(protocolClassname); + } /* (non-Javadoc) * @see events.VSAbstractEvent#onInit() diff --git a/sources/events/internal/VSProtocolScheduleEvent.java b/sources/events/internal/VSProtocolScheduleEvent.java index 0ee7d05..bab0a63 100644 --- a/sources/events/internal/VSProtocolScheduleEvent.java +++ b/sources/events/internal/VSProtocolScheduleEvent.java @@ -37,7 +37,7 @@ import serialize.*; * @author Paul C. Buetow */ public class VSProtocolScheduleEvent extends VSAbstractInternalEvent - implements VSNotSerializable, VSCopyableEvent { + implements VSNotSerializable { /** The serial version uid */ private static final long serialVersionUID = 1L; |
