package org.ourgrid.peer.business.requester; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import org.ourgrid.common.internal.IResponseTO; import org.ourgrid.common.internal.RequesterIF; import org.ourgrid.common.util.StringUtil; import org.ourgrid.peer.business.dao.PeerDAOFactory; import org.ourgrid.peer.dao.DiscoveryServiceClientDAO; import org.ourgrid.peer.request.HereAreDiscoveryServicesRequestTO; import org.ourgrid.peer.response.PersistDiscoveryServiceNetworkResponseTO; public class HereAreDiscoveryServicesRequester implements RequesterIF<HereAreDiscoveryServicesRequestTO> { public List<IResponseTO> execute(HereAreDiscoveryServicesRequestTO request) { List<IResponseTO> responses = new ArrayList<IResponseTO>(); DiscoveryServiceClientDAO dao = PeerDAOFactory.getInstance().getDiscoveryServiceClientDAO(); boolean modified = false; for (String dsAdress : request.getDiscoveryServices()) { // String[] splitAddress = dsAdress.split("@"); // ServiceID dsID = new ServiceID(splitAddress[0], splitAddress[1], // DiscoveryServiceConstants.MODULE_NAME, DiscoveryServiceConstants.DS_OBJECT_NAME); // modified |= dao.addDsAddress(dsID.toString()); modified |= dao.addDsAddress(dsAdress); } if (modified) { Set<String> dsUserAtServers = new HashSet<String>(); for (String dsAddress : dao.getDsAddresses()) { dsUserAtServers.add(StringUtil.addressToUserAtServer(dsAddress)); } PersistDiscoveryServiceNetworkResponseTO persistNetworkResponse = new PersistDiscoveryServiceNetworkResponseTO(); persistNetworkResponse.setUsersAtServers(dsUserAtServers); responses.add(persistNetworkResponse); } return responses; } }