1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.openehealth.ipf.commons.ihe.fhir;
18
19 import org.hl7.fhir.instance.model.api.IBaseResource;
20
21 import java.util.List;
22 import java.util.Map;
23
24
25
26
27
28
29
30
31 public class EagerBundleProvider extends AbstractBundleProvider {
32
33 private transient List<IBaseResource> resources;
34
35 public EagerBundleProvider(RequestConsumer consumer, Object payload, Map<String, Object> headers) {
36 super(consumer, payload, headers);
37 }
38
39 @Override
40 public List<IBaseResource> getResources(int fromIndex, int toIndex) {
41 List<IBaseResource> resources = fetchResources();
42 return resources.subList(fromIndex, Math.min(toIndex, resources.size()));
43 }
44
45 @Override
46 public Integer size() {
47 return fetchResources().size();
48 }
49
50
51
52
53 private List<IBaseResource> fetchResources() {
54 if (resources == null) {
55 resources = obtainResources(getPayload(), getHeaders());
56 }
57 return resources;
58 }
59 }