package com.bumptech.glide.provider;
import com.bumptech.glide.load.ResourceDecoder;
import com.bumptech.glide.load.ResourceEncoder;
import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
import com.bumptech.glide.load.model.ModelLoader;
import java.io.InputStream;
public class ChildLoadProvider<A, T, Z, R> implements LoadProvider<A, T, Z, R> {
private LoadProvider<A, T, Z, R> parent;
private ResourceDecoder<InputStream, Z> cacheDecoder;
private ResourceDecoder<T, Z> sourceDecoder;
private ResourceEncoder<Z> encoder;
private ResourceTranscoder<Z, R> transcoder;
public ChildLoadProvider(LoadProvider<A, T, Z, R> parent) {
this.parent = parent;
}
@Override
public ModelLoader<A, T> getModelLoader() {
return parent.getModelLoader();
}
public void setCacheDecoder(ResourceDecoder<InputStream, Z> cacheDecoder) {
this.cacheDecoder = cacheDecoder;
}
public void setSourceDecoder(ResourceDecoder<T, Z> sourceDecoder) {
this.sourceDecoder = sourceDecoder;
}
public void setEncoder(ResourceEncoder<Z> encoder) {
this.encoder = encoder;
}
public void setTranscoder(ResourceTranscoder<Z, R> transcoder) {
this.transcoder = transcoder;
}
@Override
public ResourceDecoder<InputStream, Z> getCacheDecoder() {
if (cacheDecoder != null) {
return cacheDecoder;
} else {
return parent.getCacheDecoder();
}
}
@Override
public ResourceDecoder<T, Z> getSourceDecoder() {
if (sourceDecoder != null) {
return sourceDecoder;
} else {
return parent.getSourceDecoder();
}
}
@Override
public ResourceEncoder<Z> getEncoder() {
if (encoder != null) {
return encoder;
} else {
return parent.getEncoder();
}
}
@Override
public ResourceTranscoder<Z, R> getTranscoder() {
if (transcoder != null) {
return transcoder;
} else {
return parent.getTranscoder();
}
}
}