Home | History | Annotate | Download | only in provider
      1 package com.bumptech.glide.provider;
      2 
      3 import com.bumptech.glide.load.Encoder;
      4 import com.bumptech.glide.load.ResourceDecoder;
      5 import com.bumptech.glide.load.ResourceEncoder;
      6 import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
      7 import com.bumptech.glide.load.model.ModelLoader;
      8 
      9 import java.io.InputStream;
     10 
     11 public class ChildLoadProvider<A, T, Z, R> implements LoadProvider<A, T, Z, R> {
     12     private LoadProvider<A, T, Z, R> parent;
     13     private ResourceDecoder<InputStream, Z> cacheDecoder;
     14     private ResourceDecoder<T, Z> sourceDecoder;
     15     private ResourceEncoder<Z> encoder;
     16     private ResourceTranscoder<Z, R> transcoder;
     17     private Encoder<T> sourceEncoder;
     18 
     19     public ChildLoadProvider(LoadProvider<A, T, Z, R> parent) {
     20         this.parent = parent;
     21     }
     22 
     23     @Override
     24     public ModelLoader<A, T> getModelLoader() {
     25         return parent.getModelLoader();
     26     }
     27 
     28     public void setCacheDecoder(ResourceDecoder<InputStream, Z> cacheDecoder) {
     29         this.cacheDecoder = cacheDecoder;
     30     }
     31 
     32     public void setSourceDecoder(ResourceDecoder<T, Z> sourceDecoder) {
     33         this.sourceDecoder = sourceDecoder;
     34     }
     35 
     36     public void setEncoder(ResourceEncoder<Z> encoder) {
     37         this.encoder = encoder;
     38     }
     39 
     40     public void setTranscoder(ResourceTranscoder<Z, R> transcoder) {
     41         this.transcoder = transcoder;
     42     }
     43 
     44     public void setSourceEncoder(Encoder<T> sourceEncoder) {
     45         this.sourceEncoder = sourceEncoder;
     46     }
     47 
     48     @Override
     49     public ResourceDecoder<InputStream, Z> getCacheDecoder() {
     50         if (cacheDecoder != null) {
     51             return cacheDecoder;
     52         } else {
     53             return parent.getCacheDecoder();
     54         }
     55     }
     56 
     57     @Override
     58     public ResourceDecoder<T, Z> getSourceDecoder() {
     59         if (sourceDecoder != null) {
     60             return sourceDecoder;
     61         } else {
     62             return parent.getSourceDecoder();
     63         }
     64     }
     65 
     66     @Override
     67     public Encoder<T> getSourceEncoder() {
     68         if (sourceEncoder != null) {
     69             return sourceEncoder;
     70         } else {
     71             return parent.getSourceEncoder();
     72         }
     73     }
     74 
     75     @Override
     76     public ResourceEncoder<Z> getEncoder() {
     77         if (encoder != null) {
     78             return encoder;
     79         } else {
     80             return parent.getEncoder();
     81         }
     82     }
     83 
     84     @Override
     85     public ResourceTranscoder<Z, R> getTranscoder() {
     86         if (transcoder != null) {
     87             return transcoder;
     88         } else {
     89             return parent.getTranscoder();
     90         }
     91     }
     92 
     93 }
     94