Project

General

Profile

Download (2.09 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(4-4/7)