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.pillar.checksumpillar.messagehandler;
26
27 import org.bitrepository.bitrepositoryelements.ResponseCode;
28 import org.bitrepository.bitrepositoryelements.ResponseInfo;
29 import org.bitrepository.bitrepositorymessages.IdentifyPillarsForGetFileRequest;
30 import org.bitrepository.bitrepositorymessages.IdentifyPillarsForGetFileResponse;
31 import org.bitrepository.bitrepositorymessages.MessageResponse;
32 import org.bitrepository.pillar.cache.ChecksumStore;
33 import org.bitrepository.pillar.common.MessageHandlerContext;
34 import org.bitrepository.service.exception.InvalidMessageException;
35 import org.bitrepository.service.exception.RequestHandlerException;
36
37
38
39
40 public class IdentifyPillarsForGetFileRequestHandler extends ChecksumPillarMessageHandler<IdentifyPillarsForGetFileRequest> {
41
42
43
44
45
46 public IdentifyPillarsForGetFileRequestHandler(MessageHandlerContext context, ChecksumStore refCache) {
47 super(context, refCache);
48 }
49
50 @Override
51 public Class<IdentifyPillarsForGetFileRequest> getRequestClass() {
52 return IdentifyPillarsForGetFileRequest.class;
53 }
54
55 @Override
56 public void processRequest(IdentifyPillarsForGetFileRequest message) throws RequestHandlerException {
57 ResponseInfo ri = new ResponseInfo();
58 ri.setResponseCode(ResponseCode.REQUEST_NOT_SUPPORTED);
59 ri.setResponseText("The ChecksumPillar '"
60 + getSettings().getReferenceSettings().getPillarSettings().getPillarID() + "' cannot handle a "
61 + "request for the actual file, since it only contains the checksum of the file.");
62
63 throw new InvalidMessageException(ri, message.getCollectionID());
64 }
65
66 @Override
67 public MessageResponse generateFailedResponse(IdentifyPillarsForGetFileRequest message) {
68 return createFinalResponse(message);
69 }
70
71
72
73
74
75
76
77
78
79
80
81 private IdentifyPillarsForGetFileResponse createFinalResponse(IdentifyPillarsForGetFileRequest request) {
82 IdentifyPillarsForGetFileResponse res = new IdentifyPillarsForGetFileResponse();
83 res.setFileID(request.getFileID());
84 res.setPillarID(getSettings().getReferenceSettings().getPillarSettings().getPillarID());
85
86 return res;
87 }
88 }