@OPERATION
public void propose(Proposal prop, RoleId participant, RoleId initiator) {
prop.setRoleId(participant);
RoleMessage proposal = new RoleMessage();
proposal.setContents(prop);
proposal.setRoleSender(participant);
proposal.setRoleReceiver(initiator);
proposal.setPerformative(ACLMessage.PROPOSE);
send(proposal);
try {
createCommitment(new Commitment(participant, new RoleId(INITIATOR_ROLE, RoleId.GENERIC_ROLE), "accept", new CompositeExpression(
LogicalOperatorType.OR, new Fact("done"), new Fact("failure"))));