Package com.tnsai.protocols.fipa
Class ProposeProtocol
java.lang.Object
com.tnsai.protocols.fipa.ProposeProtocol
- All Implemented Interfaces:
ConversationProtocol
FIPA Propose Interaction Protocol.
Implements a negotiation pattern where an initiator proposes an action/agreement and the responder can accept or reject.
Protocol Flow
Initiator Responder
| |
|--- PROPOSE --------------->|
| |
|invalid input: '<'-- ACCEPT-PROPOSAL --------|
| or REJECT-PROPOSAL |
| |
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.tnsai.protocols.fipa.ConversationProtocol
ConversationProtocol.ProtocolState -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateAccept(FIPAMessage proposal, String reason) Creates an accept response.createInitialMessage(String sender, String receiver, String content) Creates the initial message for this protocol.createReject(FIPAMessage proposal, String reason) Creates a reject response.createResponse(FIPAMessage original, FIPAPerformative performative, String content) Creates a response to a message.Gets the protocol description.Gets valid initiating performatives for this protocol.Gets message history for this conversation.getName()Gets the protocol name.Gets the final result if available.getState()Gets the current protocol state.getValidationErrors(FIPAMessage message) Gets validation errors for a message.getValidResponses(FIPAPerformative initiator) Gets valid response performatives for a given initiator.booleanChecks if protocol is complete.booleanChecks if protocol succeeded.booleanisValidMessage(FIPAMessage message) Validates if a message is valid for this protocol.booleanisValidResponse(FIPAMessage request, FIPAMessage response) Validates if a response is valid for a given request.voidprocessMessage(FIPAMessage message) Processes an incoming message and updates state.voidreset()Resets the protocol for reuse.
-
Constructor Details
-
ProposeProtocol
public ProposeProtocol()
-
-
Method Details
-
getName
Description copied from interface:ConversationProtocolGets the protocol name.- Specified by:
getNamein interfaceConversationProtocol- Returns:
- protocol identifier (e.g., "fipa-request")
-
getDescription
Description copied from interface:ConversationProtocolGets the protocol description.- Specified by:
getDescriptionin interfaceConversationProtocol- Returns:
- human-readable description
-
getInitiatingPerformatives
Description copied from interface:ConversationProtocolGets valid initiating performatives for this protocol.- Specified by:
getInitiatingPerformativesin interfaceConversationProtocol- Returns:
- set of valid initial performatives
-
getValidResponses
Description copied from interface:ConversationProtocolGets valid response performatives for a given initiator.- Specified by:
getValidResponsesin interfaceConversationProtocol- Parameters:
initiator- the initiating performative- Returns:
- set of valid response performatives
-
getState
Description copied from interface:ConversationProtocolGets the current protocol state.- Specified by:
getStatein interfaceConversationProtocol- Returns:
- current state
-
getMessageHistory
Description copied from interface:ConversationProtocolGets message history for this conversation.- Specified by:
getMessageHistoryin interfaceConversationProtocol- Returns:
- ordered list of messages
-
createInitialMessage
Description copied from interface:ConversationProtocolCreates the initial message for this protocol.- Specified by:
createInitialMessagein interfaceConversationProtocol- Parameters:
sender- sender agent IDreceiver- receiver agent IDcontent- message content- Returns:
- initial message
-
createResponse
public FIPAMessage createResponse(FIPAMessage original, FIPAPerformative performative, String content) Description copied from interface:ConversationProtocolCreates a response to a message.- Specified by:
createResponsein interfaceConversationProtocol- Parameters:
original- original message to respond toperformative- response performativecontent- response content- Returns:
- response message
-
createAccept
Creates an accept response.- Parameters:
proposal- original proposalreason- acceptance reason- Returns:
- accept message
-
createReject
Creates a reject response.- Parameters:
proposal- original proposalreason- rejection reason- Returns:
- reject message
-
isValidMessage
Description copied from interface:ConversationProtocolValidates if a message is valid for this protocol.- Specified by:
isValidMessagein interfaceConversationProtocol- Parameters:
message- message to validate- Returns:
- true if valid
-
isValidResponse
Description copied from interface:ConversationProtocolValidates if a response is valid for a given request.- Specified by:
isValidResponsein interfaceConversationProtocol- Parameters:
request- original requestresponse- response to validate- Returns:
- true if valid response
-
getValidationErrors
Description copied from interface:ConversationProtocolGets validation errors for a message.- Specified by:
getValidationErrorsin interfaceConversationProtocol- Parameters:
message- message to check- Returns:
- list of validation errors (empty if valid)
-
processMessage
Description copied from interface:ConversationProtocolProcesses an incoming message and updates state.- Specified by:
processMessagein interfaceConversationProtocol- Parameters:
message- message to process
-
isComplete
public boolean isComplete()Description copied from interface:ConversationProtocolChecks if protocol is complete.- Specified by:
isCompletein interfaceConversationProtocol- Returns:
- true if conversation is finished
-
isSuccessful
public boolean isSuccessful()Description copied from interface:ConversationProtocolChecks if protocol succeeded.- Specified by:
isSuccessfulin interfaceConversationProtocol- Returns:
- true if completed successfully
-
getResult
Description copied from interface:ConversationProtocolGets the final result if available.- Specified by:
getResultin interfaceConversationProtocol- Returns:
- optional result
-
reset
public void reset()Description copied from interface:ConversationProtocolResets the protocol for reuse.- Specified by:
resetin interfaceConversationProtocol
-