home *** CD-ROM | disk | FTP | other *** search
- package sun.swing;
-
- import java.awt.GraphicsConfiguration;
- import java.awt.Image;
- import java.lang.ref.SoftReference;
- import java.util.LinkedList;
- import java.util.ListIterator;
-
- public class ImageCache {
- private int maxCount;
- private final LinkedList<SoftReference<Entry>> entries;
-
- public ImageCache(int var1) {
- this.maxCount = var1;
- this.entries = new LinkedList();
- }
-
- void setMaxCount(int var1) {
- this.maxCount = var1;
- }
-
- public void flush() {
- this.entries.clear();
- }
-
- private Entry getEntry(Object var1, GraphicsConfiguration var2, int var3, int var4, Object[] var5) {
- ListIterator var7 = this.entries.listIterator();
-
- while(var7.hasNext()) {
- SoftReference var8 = (SoftReference)var7.next();
- Entry var6 = (Entry)var8.get();
- if (var6 == null) {
- var7.remove();
- } else if (var6.equals(var2, var3, var4, var5)) {
- var7.remove();
- this.entries.addFirst(var8);
- return var6;
- }
- }
-
- Entry var9 = new Entry(var2, var3, var4, var5);
- if (this.entries.size() >= this.maxCount) {
- this.entries.removeLast();
- }
-
- this.entries.addFirst(new SoftReference(var9));
- return var9;
- }
-
- public Image getImage(Object var1, GraphicsConfiguration var2, int var3, int var4, Object[] var5) {
- Entry var6 = this.getEntry(var1, var2, var3, var4, var5);
- return var6.getImage();
- }
-
- public void setImage(Object var1, GraphicsConfiguration var2, int var3, int var4, Object[] var5, Image var6) {
- Entry var7 = this.getEntry(var1, var2, var3, var4, var5);
- var7.setImage(var6);
- }
- }
-