58 lines
1.8 KiB
Java
58 lines
1.8 KiB
Java
package com.bumptech.glide.load.resource.transcode;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class TranscoderRegistry {
|
|
private final List<Entry<?, ?>> a = new ArrayList();
|
|
|
|
private static final class Entry<Z, R> {
|
|
private final Class<Z> a;
|
|
private final Class<R> b;
|
|
final ResourceTranscoder<Z, R> c;
|
|
|
|
Entry(Class<Z> cls, Class<R> cls2, ResourceTranscoder<Z, R> resourceTranscoder) {
|
|
this.a = cls;
|
|
this.b = cls2;
|
|
this.c = resourceTranscoder;
|
|
}
|
|
|
|
public boolean a(Class<?> cls, Class<?> cls2) {
|
|
return this.a.isAssignableFrom(cls) && cls2.isAssignableFrom(this.b);
|
|
}
|
|
}
|
|
|
|
public synchronized <Z, R> void a(Class<Z> cls, Class<R> cls2, ResourceTranscoder<Z, R> resourceTranscoder) {
|
|
this.a.add(new Entry<>(cls, cls2, resourceTranscoder));
|
|
}
|
|
|
|
public synchronized <Z, R> List<Class<R>> b(Class<Z> cls, Class<R> cls2) {
|
|
ArrayList arrayList = new ArrayList();
|
|
if (cls2.isAssignableFrom(cls)) {
|
|
arrayList.add(cls2);
|
|
return arrayList;
|
|
}
|
|
Iterator<Entry<?, ?>> it = this.a.iterator();
|
|
while (it.hasNext()) {
|
|
if (it.next().a(cls, cls2)) {
|
|
arrayList.add(cls2);
|
|
}
|
|
}
|
|
return arrayList;
|
|
}
|
|
|
|
public synchronized <Z, R> ResourceTranscoder<Z, R> a(Class<Z> cls, Class<R> cls2) {
|
|
if (cls2.isAssignableFrom(cls)) {
|
|
return UnitTranscoder.a();
|
|
}
|
|
for (Entry<?, ?> entry : this.a) {
|
|
if (entry.a(cls, cls2)) {
|
|
return (ResourceTranscoder<Z, R>) entry.c;
|
|
}
|
|
}
|
|
throw new IllegalArgumentException("No transcoder registered to transcode from " + cls + " to " + cls2);
|
|
}
|
|
}
|