home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / misc / LRUCache.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  763 b   |  48 lines

  1. package sun.misc;
  2.  
  3. public abstract class LRUCache<N, V> {
  4.    // $FF: renamed from: oa java.lang.Object[]
  5.    private V[] field_0 = null;
  6.    private final int size;
  7.  
  8.    public LRUCache(int var1) {
  9.       this.size = var1;
  10.    }
  11.  
  12.    protected abstract V create(N var1);
  13.  
  14.    protected abstract boolean hasName(V var1, N var2);
  15.  
  16.    public static void moveToFront(Object[] var0, int var1) {
  17.       Object var2 = var0[var1];
  18.  
  19.       for(int var3 = var1; var3 > 0; --var3) {
  20.          var0[var3] = var0[var3 - 1];
  21.       }
  22.  
  23.       var0[0] = var2;
  24.    }
  25.  
  26.    public V forName(N var1) {
  27.       if (this.field_0 == null) {
  28.          this.field_0 = (V[])(new Object[this.size]);
  29.       } else {
  30.          for(int var2 = 0; var2 < this.field_0.length; ++var2) {
  31.             Object var3 = this.field_0[var2];
  32.             if (var3 != null && this.hasName(var3, var1)) {
  33.                if (var2 > 0) {
  34.                   moveToFront(this.field_0, var2);
  35.                }
  36.  
  37.                return (V)var3;
  38.             }
  39.          }
  40.       }
  41.  
  42.       Object var4 = this.create(var1);
  43.       this.field_0[this.field_0.length - 1] = var4;
  44.       moveToFront(this.field_0, this.field_0.length - 1);
  45.       return (V)var4;
  46.    }
  47. }
  48.