summaryrefslogtreecommitdiff
path: root/src/main/java/core/VSMessage.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-06-20 19:25:10 +0300
committerPaul Buetow <paul@buetow.org>2025-06-20 19:25:10 +0300
commit7ee77637273e2e913cf19f078e9143ae6977f44f (patch)
tree2cda0f82a7bf4c6f76e115f57e28de18d744d5e6 /src/main/java/core/VSMessage.java
parent70fc0505b223f7bf17d3671d0532773359cf7858 (diff)
Add comprehensive Javadoc documentation for public APIs
- Document core classes: VSTask, VSMessage, VSInternalProcess - Document event interfaces: VSAbstractEvent, VSCopyableEvent, VSTime - Document timestamp events: VSTimestampTriggeredEvent, VSLamportTimestampEvent - Document protocol framework: VSAbstractProtocol methods - Document VSSimulator and VSRegisteredEvents - Add detailed method descriptions with parameter and return value docs - Include usage examples and cross-references between related classes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'src/main/java/core/VSMessage.java')
-rw-r--r--src/main/java/core/VSMessage.java50
1 files changed, 29 insertions, 21 deletions
diff --git a/src/main/java/core/VSMessage.java b/src/main/java/core/VSMessage.java
index a7b48e6..130bd53 100644
--- a/src/main/java/core/VSMessage.java
+++ b/src/main/java/core/VSMessage.java
@@ -79,64 +79,71 @@ public class VSMessage extends VSPrefs {
}
/**
- * Gets the protocol name of the message.
+ * Gets the human-readable protocol name associated with this message.
+ * The name is retrieved from the registered events based on the protocol classname.
*
- * @return The protocol name of the message.
+ * @return the localized protocol name, or null if not found
*/
public String getName() {
return VSRegisteredEvents.getNameByClassname(getProtocolClassname());
}
/**
- * Gets the protocol classname.
+ * Gets the fully qualified classname of the protocol that created this message.
+ * This is used to identify which protocol handler should process the message.
*
- * @return The protocol classname of the message.
+ * @return the protocol's full classname (e.g., "protocols.implementations.VSPingPongProtocol")
*/
public String getProtocolClassname() {
return protocolClassname;
}
/**
- * Gets the message id.
+ * Gets the unique identifier for this message.
+ * Each message is assigned a sequential ID when created.
*
- * @return The id of the message.
+ * @return the unique message ID
*/
public long getMessageID() {
return messageID;
}
/**
- * Gets a reference of the sending process.
+ * Gets the process that sent this message.
+ * This can be used to identify the sender and access sender information.
*
- * @return The process which sent this message.
+ * @return the process that created and sent this message
*/
public VSAbstractProcess getSendingProcess() {
return sendingProcess;
}
/**
- * Gets the lamport time.
+ * Gets the Lamport timestamp of the sending process at the time this message was sent.
+ * This is used for logical ordering of events in the distributed system.
*
- * @return The lamport time of the sending process.
+ * @return the sender's Lamport time when the message was created
*/
public long getLamportTime() {
return lamportTime;
}
/**
- * Gets the vector time.
+ * Gets the vector clock of the sending process at the time this message was sent.
+ * This is used for determining causality between events in the distributed system.
*
- * @return The vector time of the sending process.
+ * @return a copy of the sender's vector clock when the message was created
*/
public VSVectorTime getVectorTime() {
return vectorTime;
}
/**
- * Checks if the message has been sent by a server or a client.
+ * Checks whether this message was sent by a server or client protocol instance.
+ * This distinction is important for protocols that have different behavior
+ * for server and client roles.
*
- * @return true, if the message has been sent by a server. false, if the
- * message has been sent by a client.
+ * @return true if sent by a server protocol instance, false if sent by a client
*/
public boolean isServerMessage() {
return isServerMessage;
@@ -160,20 +167,21 @@ public class VSMessage extends VSPrefs {
}
/**
- * Extended string representation of the message object.
+ * Returns an extended string representation of this message.
+ * This includes the basic message information plus all stored preferences/data.
*
- * @return Extended string representation of the message object.
+ * @return detailed string representation including ID, protocol, and all message data
*/
public String toStringFull() {
return toString() + "; " + super.toString();
}
/**
- * Compares two messages.
+ * Compares this message with another message for equality.
+ * Two messages are considered equal if they have the same message ID.
*
- * @param message The message to compare with.
- *
- * @return true, if the messages have the same id. Otherwise false.
+ * @param message the message to compare with this message
+ * @return true if both messages have the same ID, false otherwise
*/
public boolean equals(VSMessage message) {
return messageID == message.getMessageID();