/**
 * 
 */
package jadeinteraction;

import alice.mas.lab1.StaticUtils;
import jade.core.AID;
import jade.core.Agent;
import jade.domain.DFService;
import jade.domain.FIPAAgentManagement.DFAgentDescription;
import jade.domain.FIPAAgentManagement.ServiceDescription;
import jason.asSemantics.DefaultInternalAction;
import jason.asSemantics.TransitionSystem;
import jason.asSemantics.Unifier;
import jason.asSyntax.ListTerm;
import jason.asSyntax.ListTermImpl;
import jason.asSyntax.StringTerm;
import jason.asSyntax.StringTermImpl;
import jason.asSyntax.Term;
import jason.infra.jade.JadeRuntimeServices;

/**
 * @author danysk
 * 
 */
public class getservices extends DefaultInternalAction {

	@Override
	public Object execute(TransitionSystem ts, Unifier un, Term[] args)
			throws Exception {
		Agent a = alice.mas.lab4.StaticUtils.getJadeAgent(ts);
		StringTerm type = (StringTerm) args[0];
		AID[] aids = StaticUtils.searchServiceProviders(a, type.getString());
		
		ListTerm l = new ListTermImpl();
		
		for(AID aid: aids){
			l.append(new StringTermImpl(aid.getLocalName()));
		}
		
		return un.unifies(args[1], l);
	}
}
