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.FileAction;
28 import org.bitrepository.bitrepositoryelements.ResponseCode;
29 import org.bitrepository.bitrepositoryelements.ResponseInfo;
30 import org.bitrepository.bitrepositorymessages.GetFileFinalResponse;
31 import org.bitrepository.bitrepositorymessages.GetFileRequest;
32 import org.bitrepository.bitrepositorymessages.MessageResponse;
33 import org.bitrepository.pillar.cache.ChecksumStore;
34 import org.bitrepository.pillar.common.MessageHandlerContext;
35 import org.bitrepository.service.exception.IllegalOperationException;
36 import org.bitrepository.service.exception.RequestHandlerException;
37
38
39
40
41 public class GetFileRequestHandler extends ChecksumPillarMessageHandler<GetFileRequest> {
42
43
44
45
46
47 public GetFileRequestHandler(MessageHandlerContext context, ChecksumStore refCache) {
48 super(context, refCache);
49 }
50
51 @Override
52 public Class<GetFileRequest> getRequestClass() {
53 return GetFileRequest.class;
54 }
55
56 @Override
57 public void processRequest(GetFileRequest message) throws RequestHandlerException {
58 validateCollectionID(message);
59 validatePillarId(message.getPillarID());
60
61 getAuditManager().addAuditEvent(message.getCollectionID(), message.getFileID(), message.getFrom(),
62 "Failed getting file.", message.getAuditTrailInformation(), FileAction.FAILURE);
63
64 ResponseInfo ri = new ResponseInfo();
65 ri.setResponseCode(ResponseCode.REQUEST_NOT_SUPPORTED);
66 ri.setResponseText("The Checksum pillar is unable to deliver actual files.");
67 throw new IllegalOperationException(ri, message.getCollectionID());
68 }
69
70 @Override
71 public MessageResponse generateFailedResponse(GetFileRequest message) {
72 return createFinalResponse(message);
73 }
74
75
76
77
78
79
80
81
82
83 private GetFileFinalResponse createFinalResponse(GetFileRequest request) {
84 GetFileFinalResponse res = new GetFileFinalResponse();
85 res.setFileAddress(request.getFileAddress());
86 res.setFileID(request.getFileID());
87 res.setFilePart(request.getFilePart());
88 res.setPillarID(getSettings().getReferenceSettings().getPillarSettings().getPillarID());
89
90 return res;
91 }
92 }