package ld5_1;

import jade.core.Agent;
import jade.core.behaviours.SimpleBehaviour;
import jade.lang.acl.ACLMessage;

public class Tester extends Agent {

    private void print(String data, String elgesenosId) {
        if (elgesenosId != null) {
            System.out.println("A[" + getLocalName() + " | " + elgesenosId + "] " + data);
        } else {
            System.out.println("A[" + getLocalName() + "] " + data);
        }
    }

    private void sendMessage(String receiver, int performative, String content) {
        ACLMessage msg = new ACLMessage(performative);
        msg.addReceiver(new jade.core.AID(receiver, jade.core.AID.ISLOCALNAME));
        msg.setContent(content);

        print("Tester siunčia: " + content, "sendMessage");
        send(msg);
    }

    @Override
    protected void setup() {
        addBehaviour(new TestBehaviour());
    }

    private class TestBehaviour extends SimpleBehaviour {
        @Override
        public void action() {
            sendMessage("Custom", ACLMessage.INFORM, "IN_pirmasgood INFORM");
            sendMessage("Custom", ACLMessage.AGREE, "HELLO AGREE");
            sendMessage("Custom", ACLMessage.INFORM, "IN_antrasgood INFORM");
            sendMessage("Custom", ACLMessage.REQUEST, "IN_sveiki REQUEST");
            sendMessage("Custom", ACLMessage.INFORM, "Stop");
            doDelete();
        }

        @Override
        public boolean done() {
            return true;
        }
    }
    public void takeDown() {
        print("i died", null);
    }
}