1 /*****************************************************************
2 * Licensed to the Apache Software Foundation (ASF) under one *
3 * or more contributor license agreements. See the NOTICE file *
4 * distributed with this work for additional information *
5 * regarding copyright ownership. The ASF licenses this file *
6 * to you under the Apache License, Version 2.0 (the *
7 * "License"); you may not use this file except in compliance *
8 * with the License. You may obtain a copy of the License at *
9 * *
10 * http://www.apache.org/licenses/LICENSE-2.0 *
11 * *
12 * Unless required by applicable law or agreed to in writing, *
13 * software distributed under the License is distributed on an *
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15 * KIND, either express or implied. See the License for the *
16 * specific language governing permissions and limitations *
17 * under the License. *
18 ****************************************************************/
19
20
21 package org.apache.james.postage.result;
22
23 import java.util.Map;
24
25 /***
26 * collects and writes all result data for one scenario
27 */
28 public interface PostageRunnerResult {
29
30 void setEnvironmentDescription(Map descriptionItems);
31
32 /***
33 * add a record to be matched later on
34 * @param mailProcessingRecord
35 */
36 void addNewMailRecord(MailProcessingRecord mailProcessingRecord);
37
38 /***
39 * retrieve the matching record, if existing
40 * @param mailProcessingRecord record for whom a match is searched
41 * @return null, if no match is found or matching and merged record otherwise
42 */
43 MailProcessingRecord matchMailRecord(MailProcessingRecord mailProcessingRecord);
44
45 /***
46 * count the valid matches
47 * @param mailProcessingRecord
48 */
49 void recordValidatedMatch(MailProcessingRecord matchedAndMergedRecord);
50
51 void addJVMResult(JVMResourcesRecord jvmResourcesRecord);
52
53 long getUnmatchedMails();
54
55 long getMatchedMails();
56
57 long getValidMails();
58
59 long getTimestampFirstResult();
60
61 long getTimestampLastResult();
62
63 void addError(int errorNumber, String errorMessage);
64
65 long getErrorCount();
66
67 void writeResults(String filenameMailResults, String filenameJVMStatistics, String filenameErros, boolean flushMatchedMailOnly);
68 }