1package com.bumptech.glide.provider;
2
3import com.bumptech.glide.DataLoadProvider;
4import com.bumptech.glide.load.Encoder;
5import com.bumptech.glide.load.ResourceDecoder;
6import com.bumptech.glide.load.ResourceEncoder;
7import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
8import com.bumptech.glide.load.model.ModelLoader;
9
10import java.io.InputStream;
11
12public class FixedLoadProvider<A, T, Z, R> implements LoadProvider<A, T, Z, R>  {
13    private final ModelLoader<A, T> modelLoader;
14    private ResourceTranscoder<Z, R> transcoder;
15    private final DataLoadProvider<T, Z> dataLoadProvider;
16
17    public FixedLoadProvider(ModelLoader<A, T> modelLoader, ResourceTranscoder<Z, R> transcoder,
18            DataLoadProvider<T, Z> dataLoadProvider) {
19        if (modelLoader == null) {
20            throw new NullPointerException("ModelLoader must not be null");
21        }
22        this.modelLoader = modelLoader;
23        if (transcoder == null) {
24            throw new NullPointerException("Transcoder must not be null");
25        }
26        this.transcoder = transcoder;
27        if (dataLoadProvider == null) {
28            throw new NullPointerException("DataLoadProvider must not be null");
29        }
30        this.dataLoadProvider = dataLoadProvider;
31    }
32
33    @Override
34    public ModelLoader<A, T> getModelLoader() {
35        return modelLoader;
36    }
37
38    @Override
39    public ResourceTranscoder<Z, R> getTranscoder() {
40        return transcoder;
41    }
42
43    @Override
44    public ResourceDecoder<InputStream, Z> getCacheDecoder() {
45        return dataLoadProvider.getCacheDecoder();
46    }
47
48    @Override
49    public ResourceDecoder<T, Z> getSourceDecoder() {
50        return dataLoadProvider.getSourceDecoder();
51    }
52
53    @Override
54    public Encoder<T> getSourceEncoder() {
55        return dataLoadProvider.getSourceEncoder();
56    }
57
58    @Override
59    public ResourceEncoder<Z> getEncoder() {
60        return dataLoadProvider.getEncoder();
61    }
62}
63