Skip to content

File SKLMessage.java

File List > internal > message > SKLMessage.java

Go to the documentation of this file

package skydata.internal.message;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;

import jade.lang.acl.ACLMessage;

public class SKLMessage implements Serializable {

    private String msg_id;

    private long arrivalDate;

    private Serializable content;

    private long nbSent = 1;

    private ArrayList<SKAID> receivers;

    public String ontology;

    public String protocol;

    private SKAID sender;

    public SKLMessage(String ontology, String protocol) {
        this.receivers = new ArrayList<>();
        this.ontology = ontology;
        this.protocol = protocol;
    }

    public void clearReceivers() {
        this.receivers.clear();
    }

    public ArrayList<SKAID> getReceivers() {
        return this.receivers;
    }

    public void setReceivers(ArrayList<SKAID> r) {
        this.receivers = r;
    }

    public void addReceiver(SKAID r) {
        this.receivers.add(r);
    }

    public SKAID getReceiver(String name) {
        for(SKAID s : this.receivers) {
            if(s.getName().equals(name)) {
                return s;
            }
        }
        return null;
    }

    public void removeReceiver(String name) {
        this.receivers.removeIf(x -> x.getName().equals(name));
    }

    public void setArrivalDate(long ad) {
        this.arrivalDate = ad;
    }

    public long getArrivalDate() {
        return this.arrivalDate;
    }

    public void setContent(Serializable content) {
        this.content = content;
    }

    public Serializable getContent() {
        return this.content;
    }

    public void setMessageId(String id) {
        this.msg_id = id;
    }

    public String getMessageId() {
        return this.msg_id;
    }

    public long getNbSent() {
        return this.nbSent;
    }

    public void setNbSent(long b) {
        this.nbSent = b;
    }

    public void setSender(SKAID sender) {
        this.sender = sender;
    }

    public SKAID getSender() {
        return this.sender;
    }

    public ACLMessage toJade(ArrayList<SKAID> receivers) {
        final ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
        try {
            msg.setContentObject((Serializable) this);
            for (SKAID r : receivers) {
                msg.addReceiver(r.toAID());
            }
            msg.setProtocol(this.protocol);
            msg.setOntology(this.ontology);
        } catch (IOException e) {
            e.printStackTrace();
        }

        return msg;
    }

    public ACLMessage toJade() {
        return this.toJade(this.receivers);
    }

    public ACLMessage toJade(SKAID s) {
        ArrayList<SKAID> receivers = new ArrayList<>(Arrays.asList(s));
        return toJade(receivers);
    }
}