Project

General

Profile

1
package eu.dnetlib.usagestats.sushilite.domain;
2

    
3
import com.fasterxml.jackson.annotation.JsonInclude;
4
import com.fasterxml.jackson.annotation.JsonProperty;
5

    
6
import java.text.DateFormat;
7
import java.text.SimpleDateFormat;
8
import java.util.ArrayList;
9
import java.util.Date;
10
import java.util.List;
11

    
12
/**
13
 * Created by tsampikos on 25/10/2016.
14
 */
15
public class ReportResponse {
16

    
17
    private String created;
18
    private List<ReportException> reportExceptions = new ArrayList<>();
19
    private Requestor requestor;
20
    private ReportDefinition reportDefinition;
21
    private ReportWrapper reportWrapper;
22

    
23
    public ReportResponse() {
24
    }
25

    
26
    public ReportResponse(String reportName, String release, String requestorId, String beginDate,
27
                          String endDate, String repositoryIdentifier, String itemIdentifier,
28
                          String itemDataType, String hasDoi, String granularity, String callback, List<ReportItem> reportItems, List<ReportException> reportExceptions) {
29
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
30
        Date date = new Date();
31
        created = dateFormat.format(date);
32

    
33
        if (!reportExceptions.isEmpty()) {
34
            this.reportExceptions = reportExceptions;
35
        }
36

    
37
        requestor = new Requestor(requestorId);
38

    
39
        reportDefinition = new ReportDefinition(reportName, release, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, granularity, Integer.toString(reportItems.size()));
40

    
41
        Report report = new Report(created, reportName, release, requestorId, reportItems);
42
        reportWrapper = new ReportWrapper(report);
43
    }
44

    
45
    @JsonProperty("@Created")
46
    public String getCreated() {
47
        return created;
48
    }
49

    
50

    
51
    @JsonInclude(JsonInclude.Include.NON_NULL)
52
    @JsonProperty("Exception")
53
    public List<ReportException> getReportExceptions() {
54
        return reportExceptions;
55
    }
56

    
57
    @JsonProperty("Requestor")
58
    public Requestor getRequestor() {
59
        return requestor;
60
    }
61

    
62
    @JsonProperty("ReportDefinition")
63
    public ReportDefinition getReportDefinition() {
64
        return reportDefinition;
65
    }
66

    
67
    @JsonProperty("Report")
68
    public ReportWrapper getReportWrapper() {
69
        return reportWrapper;
70
    }
71

    
72
}
(13-13/18)