View Javadoc

1   package org.bitrepository.protocol.messagebus.logger;
2   
3   /*
4    * #%L
5    * Bitrepository Core
6    * %%
7    * Copyright (C) 2010 - 2012 The State and University Library, The Royal Library and The State Archives, Denmark
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser General Public License as 
11   * published by the Free Software Foundation, either version 2.1 of the 
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Lesser Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Lesser Public 
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/lgpl-2.1.html>.
22   * #L%
23   */
24  
25  import org.bitrepository.bitrepositorymessages.GetChecksumsFinalResponse;
26  import org.bitrepository.bitrepositorymessages.GetChecksumsRequest;
27  import org.bitrepository.bitrepositorymessages.IdentifyPillarsForGetChecksumsRequest;
28  import org.bitrepository.bitrepositorymessages.Message;
29  import org.bitrepository.common.utils.FileIDsUtils;
30  
31  /**
32   * Custom logger adding GetChecksums message specific parameters.
33   */
34  public class GetChecksumsMessageLogger extends DefaultMessagingLogger {
35      @Override
36      protected StringBuilder appendCustomInfo(StringBuilder messageSB, Message message) {
37          if (message instanceof IdentifyPillarsForGetChecksumsRequest) {
38              IdentifyPillarsForGetChecksumsRequest request = (IdentifyPillarsForGetChecksumsRequest) message;
39              messageSB.append(" FileIDs=" + FileIDsUtils.asString(request.getFileIDs()));
40          }
41  
42          else if (message instanceof GetChecksumsRequest) {
43              GetChecksumsRequest request = (GetChecksumsRequest) message;
44              messageSB.append(" FileIDs=" + FileIDsUtils.asString(request.getFileIDs()));
45              if (request.getChecksumRequestForExistingFile() != null) {
46                  messageSB.append(", ChecksumRequestForExistingFile=" + request.getChecksumRequestForExistingFile());
47              }
48              if (request.getResultAddress() != null) {
49                  messageSB.append(", FileAddress=" + request.getResultAddress());
50              }
51              if (request.getMaxNumberOfResults() != null) {
52                  messageSB.append(", MaxNumberOfResults=" + request.getMaxNumberOfResults());
53              }
54              if (request.getMaxTimestamp() != null) {
55                  messageSB.append(", MaxTimestamp=" + request.getMaxTimestamp());
56              }
57              if (request.getMinTimestamp() != null) {
58                  messageSB.append(", MinTimestamp=" + request.getMinTimestamp());
59              }
60              if (request.getAuditTrailInformation() != null) {
61                  messageSB.append(", AuditTrailInformation=" + request.getAuditTrailInformation());
62              }
63          }
64  
65          else if (message instanceof GetChecksumsFinalResponse) {
66              GetChecksumsFinalResponse response = (GetChecksumsFinalResponse) message;
67  
68              if (response.getResultingChecksums() != null && response.getResultingChecksums().getChecksumDataItems() != null) {
69                  messageSB.append(", NumberOfChecksums=" +
70                          response.getResultingChecksums().getChecksumDataItems().size());
71              }
72  
73              if (response.getChecksumRequestForExistingFile() != null) {
74                  messageSB.append(", ChecksumRequestForExistingFile=" + response.getChecksumRequestForExistingFile());
75              }
76  
77              if (response.isPartialResult() != null) {
78                  messageSB.append(", PartialResult=" + response.isPartialResult());
79              }
80          }
81          return messageSB;
82      }
83  }