12d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papppackage com.bumptech.glide.load.resource;
22d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp
32d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Pappimport com.bumptech.glide.load.engine.Resource;
42d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp
52d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp/**
62d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp * Simple wrapper for an arbitrary object which helps to satisfy some of the glide engine's contracts.
72d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp * <b>Suggested usages only include resource object which don't have size and cannot be recycled/closed.</b>
82d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp *
92d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp * @param <T> type of the wrapped resource
102d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp */
112d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp// TODO: there isn't much point in caching these...
122d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papppublic class SimpleResource<T> implements Resource<T> {
132d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    protected final T data;
142d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp
152d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    public SimpleResource(T data) {
16f4e84300ed9c3a518f4bda4d29f417202e0e3adfSam Judd        if (data == null) {
17f4e84300ed9c3a518f4bda4d29f417202e0e3adfSam Judd            throw new NullPointerException("Data must not be null");
18f4e84300ed9c3a518f4bda4d29f417202e0e3adfSam Judd        }
192d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp        this.data = data;
202d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    }
212d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp
222d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    @Override
232d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    public final T get() {
242d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp        return data;
252d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    }
262d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp
272d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    @Override
282d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    public final int getSize() {
292d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp        return 1;
302d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    }
312d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp
322d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    @Override
332d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    public void recycle() {
342d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp        // no op
352d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp    }
362d2fd74ee83002c19541f772dfb3e5ff5aa967c1Robert Papp}
37