@OPERATION
public void propose(Proposal prop, RoleId participant, RoleId initiator) {
if (!acceptingProposals)
failed("No more proposals allowed.");
prop.setRoleId(participant);
CAMessage proposal = new CAMessage();
proposal.setContents(prop);
proposal.setRoleSender(participant);
proposal.setRoleReceiver(initiator);
proposal.setPerformative(ACLMessage.PROPOSE);
send(proposal);
try {
assertFact(new Fact("propose", participant, prop));
createCommitment(new Commitment(participant, initiator, new Fact("accept"), new CompositeExpression(