All Downloads are FREE. Search and download functionalities are using the official Maven repository.

astra.messaging.MessageEvent Maven / Gradle / Ivy

package astra.messaging;

import astra.event.Event;
import astra.formula.Formula;
import astra.reasoner.util.LogicVisitor;
import astra.term.Term;

public class MessageEvent implements Event {
	private Term performative;
	private Term sender;
	private Formula content;
	private Term params;

	public MessageEvent(Term performative, Term sender, Formula content) {
		this(performative, sender, content, null);
	}

	public MessageEvent(Term performative, Term sender, Formula content, Term params) {
		this.performative = performative;
		this.sender = sender;
		this.content = content;
		this.params = params;
	}

	public String signature() {
		return "@message";
	}

	public String toString() {
		return "@message(" + performative + "," + sender + "," + content + (params == null ? "" : "," + params) + ")";
	}

	public Term performative() {
		return performative;
	}

	public Term sender() {
		return sender;
	}

	public Formula content() {
		return content;
	}

	@Override
	public Object getSource() {
		return null;
	}

	public Term params() {
		return params;
	}

	@Override
	public Event accept(LogicVisitor visitor) {
		return new MessageEvent(performative, (Term) sender.accept(visitor), (Formula) content.accept(visitor), params != null ? (Term) params.accept(visitor):null);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy