1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package org.bitrepository.modify.deletefile.conversation;
26
27 import java.util.Collection;
28 import org.bitrepository.bitrepositorymessages.DeleteFileFinalResponse;
29 import org.bitrepository.bitrepositorymessages.DeleteFileRequest;
30 import org.bitrepository.bitrepositorymessages.MessageResponse;
31 import org.bitrepository.client.conversation.ConversationContext;
32 import org.bitrepository.client.conversation.PerformingOperationState;
33 import org.bitrepository.client.conversation.selector.SelectedComponentInfo;
34 import org.bitrepository.client.exceptions.UnexpectedResponseException;
35 import org.bitrepository.common.utils.ChecksumUtils;
36
37
38
39
40
41
42
43
44
45 public class DeletingFile extends PerformingOperationState {
46 private final DeleteFileConversationContext context;
47
48
49
50
51
52 public DeletingFile(DeleteFileConversationContext context, Collection<SelectedComponentInfo> contributors) {
53 super(contributors);
54 this.context = context;
55 }
56
57 @Override
58 protected void generateContributorCompleteEvent(MessageResponse msg) throws UnexpectedResponseException {
59 DeleteFileFinalResponse response = (DeleteFileFinalResponse) msg;
60 getContext().getMonitor().contributorComplete(new DeleteFileCompletePillarEvent(
61 response.getPillarID(), response.getCollectionID(), response.getChecksumDataForExistingFile()));
62 }
63
64 @Override
65 protected void sendRequest() {
66 context.getMonitor().requestSent("Sending request for deleting file", activeContributors.keySet().toString());
67 for(String pillar : activeContributors.keySet()) {
68 DeleteFileRequest msg = createRequest(pillar);
69 if (context.getChecksumRequestForValidation() != null) {
70 if (!context.isChecksumPillar(pillar) ||
71 context.getChecksumRequestForValidation().equals(ChecksumUtils.getDefault(context.getSettings()))) {
72 msg.setChecksumRequestForExistingFile(context.getChecksumRequestForValidation());
73 }
74 }
75 msg.setPillarID(pillar);
76 msg.setDestination(activeContributors.get(pillar));
77 context.getMessageSender().sendMessage(msg);
78 }
79 }
80
81
82
83
84
85 private DeleteFileRequest createRequest(String pillar) {
86 DeleteFileRequest request = new DeleteFileRequest();
87 initializeMessage(request);
88 request.setFileID(context.getFileID());
89 request.setChecksumDataForExistingFile(context.getChecksumForValidationAtPillar());
90 request.setPillarID(pillar);
91 request.setDestination(activeContributors.get(pillar));
92 return request;
93 }
94
95
96 @Override
97 protected ConversationContext getContext() {
98 return context;
99 }
100
101 @Override
102 protected String getPrimitiveName() {
103 return "DeleteFile";
104 }
105 }