1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.bitrepository.access.getstatus.conversation;
23
24 import java.util.Collection;
25 import org.bitrepository.bitrepositorymessages.GetStatusFinalResponse;
26 import org.bitrepository.bitrepositorymessages.GetStatusRequest;
27 import org.bitrepository.bitrepositorymessages.MessageResponse;
28 import org.bitrepository.client.conversation.ConversationContext;
29 import org.bitrepository.client.conversation.PerformingOperationState;
30 import org.bitrepository.client.conversation.selector.SelectedComponentInfo;
31 import org.bitrepository.client.exceptions.UnexpectedResponseException;
32
33 public class GettingStatus extends PerformingOperationState {
34 private final GetStatusConversationContext context;
35
36
37
38
39
40 public GettingStatus(GetStatusConversationContext context, Collection<SelectedComponentInfo> contributors) {
41 super(contributors);
42 this.context = context;
43 }
44
45 @Override
46 protected void generateContributorCompleteEvent(MessageResponse msg) throws UnexpectedResponseException {
47 GetStatusFinalResponse response = (GetStatusFinalResponse) msg;
48 getContext().getMonitor().contributorComplete(
49 new StatusCompleteContributorEvent(msg.getFrom(), response.getCollectionID(), response.getResultingStatus()));
50 }
51
52 @Override
53 protected void sendRequest() {
54 GetStatusRequest request = new GetStatusRequest();
55 initializeMessage(request);
56
57 context.getMonitor().requestSent("Sending GetStatusRequest", activeContributors.keySet().toString());
58 for(String ID : activeContributors.keySet()) {
59 request.setContributor(ID);
60 request.setDestination(activeContributors.get(ID));
61 context.getMessageSender().sendMessage(request);
62 }
63 }
64
65 @Override
66 protected ConversationContext getContext() {
67 return context;
68 }
69
70 @Override
71 protected String getPrimitiveName() {
72 return "GetStatus";
73 }
74 }