1
|
package eu.etaxonomy.cdm.remote.view.oaipmh;
|
2
|
|
3
|
import java.time.ZonedDateTime;
|
4
|
import java.util.Map;
|
5
|
|
6
|
import org.hibernate.envers.RevisionType;
|
7
|
|
8
|
import eu.etaxonomy.cdm.api.service.pager.Pager;
|
9
|
import eu.etaxonomy.cdm.model.view.AuditEventRecord;
|
10
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.Header;
|
11
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.ListIdentifiers;
|
12
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.MetadataPrefix;
|
13
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.OAIPMH;
|
14
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.ResumptionToken;
|
15
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.SetSpec;
|
16
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.Status;
|
17
|
import eu.etaxonomy.cdm.remote.dto.oaipmh.Verb;
|
18
|
import eu.etaxonomy.cdm.remote.view.OaiPmhResponseView;
|
19
|
|
20
|
public class ListIdentifiersView extends OaiPmhResponseView {
|
21
|
|
22
|
@Override
|
23
|
protected void constructResponse(OAIPMH oaiPmh,Map<String,Object> model) {
|
24
|
oaiPmh.getRequest().setVerb(Verb.LIST_IDENTIFIERS);
|
25
|
oaiPmh.getRequest().setValue((String)model.get("request"));
|
26
|
oaiPmh.getRequest().setMetadataPrefix((MetadataPrefix)model.get("metadataPrefix"));
|
27
|
|
28
|
if(model.containsKey("from")) {
|
29
|
oaiPmh.getRequest().setFrom((ZonedDateTime)model.get("from"));
|
30
|
}
|
31
|
|
32
|
if(model.containsKey("until")) {
|
33
|
oaiPmh.getRequest().setUntil((ZonedDateTime)model.get("until"));
|
34
|
}
|
35
|
|
36
|
if(model.containsKey("set")) {
|
37
|
oaiPmh.getRequest().setSet((SetSpec)model.get("set"));
|
38
|
}
|
39
|
|
40
|
ListIdentifiers listIdentifiers = new ListIdentifiers();
|
41
|
|
42
|
for(AuditEventRecord auditEventRecord : ((Pager<AuditEventRecord>)model.get("pager")).getRecords()) {
|
43
|
Header header = mapper.map(auditEventRecord.getAuditableObject(), Header.class);
|
44
|
if(auditEventRecord.getRevisionType().equals(RevisionType.DEL)) {
|
45
|
header.setStatus(Status.DELETED);
|
46
|
}
|
47
|
listIdentifiers.getHeader().add(header);
|
48
|
}
|
49
|
|
50
|
if(model.containsKey("resumptionToken")) {
|
51
|
listIdentifiers.setResumptionToken((ResumptionToken)model.get("resumptionToken"));
|
52
|
}
|
53
|
|
54
|
oaiPmh.setListIdentifiers(listIdentifiers);
|
55
|
}
|
56
|
}
|