package org.ourgrid.discoveryservice.communication.sender; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.ourgrid.common.interfaces.DiscoveryService; import org.ourgrid.common.internal.SenderIF; import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceInfo; import org.ourgrid.discoveryservice.response.DSHereAreDiscoveryServicesResponseTO; import br.edu.ufcg.lsd.commune.container.servicemanager.ServiceManager; import br.edu.ufcg.lsd.commune.identification.ServiceID; /** * Requirement 511 */ public class DSHereAreDiscoveryServicesSender implements SenderIF<DSHereAreDiscoveryServicesResponseTO> { public void execute(DSHereAreDiscoveryServicesResponseTO response, ServiceManager manager) { Set<DiscoveryServiceInfo> discoveryServices = response.getDiscoveryServices(); List<ServiceID> dsIDs = new ArrayList<ServiceID>(); for (DiscoveryServiceInfo ds : discoveryServices) { dsIDs.add(ServiceID.parse(ds.getDsAddress())); } DiscoveryService ds = (DiscoveryService) manager.getStub(ServiceID.parse(response.getStubAddress()), DiscoveryService.class); ds.hereAreDiscoveryServices(dsIDs); } }