⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cachemanager.java

📁 自行开发的高缓存table
💻 JAVA
字号:
// Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov  Date: 2004-2-20 9:17:10
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   CacheManager.java

package utility.HWCacheTable;

import java.util.Vector;

// Referenced classes of package utility.HWCacheTable:
//            Cache, ServerModel, CacheTableStatusViewer, CacheTableModel

class CacheManager
{

    CacheManager(ServerModel servermodel, CacheTableModel cachetablemodel)
    {
        _serverModel = null;
        _cacheTableModel = null;
        _state = 1;
        _count = 0;
        _sizeHasGet = false;
        _cache = null;
        _thrownCache = null;
        _statusViewer = null;
        _prevStatus = 65535;
        _serverModel = servermodel;
        _cacheTableModel = cachetablemodel;
        checkState();
    }

    public void setServerModel(ServerModel servermodel)
    {
        _serverModel = servermodel;
        checkState();
    }

    private void checkState()
    {
        if(_serverModel != null)
            _state = 2;
        else
            _state = 1;
    }

    void clearSizeRelativeValue()
    {
        _sizeHasGet = false;
    }

    public int getRowCount()
    {
        if(_state == 1)
            return 0;
        if(_sizeHasGet)
        {
            return _count;
        } else
        {
            _count = _serverModel.getSize();
            _sizeHasGet = true;
            return _count;
        }
    }

    void restoreCache()
    {
        _state = 2;
        _count = 0;
        _sizeHasGet = false;
        if(_cache != null && !_cache.gettingDataFinished())
            _cache.stopGettingData();
        disposeCache();
    }

    void throwCacheData()
    {
        _cache = null;
    }

    ServerModel getServerModel()
    {
        return _serverModel;
    }

    CacheTableModel getCacheTableModel()
    {
        return _cacheTableModel;
    }

    public Object getValueAt(int i, int j)
    {
        if(_cache == null)
        {
            _cache = new Cache(this, i);
            _cache.start();
        } else
        if(!isDataInTheCache(i))
        {
            _thrownCache = _cache;
            _thrownCache.setThrowFlag(true);
            _cache = new Cache(this, i);
            if(_thrownCache.gettingDataFinished())
            {
                _cache.start();
                releaseThrownCache();
            } else
            {
                _thrownCache.stopGettingDataAndStart();
            }
        }
        return _cache.getValueAt(i, j);
    }

    void thrownCacheFinishWorking()
    {
        releaseThrownCache();
        _cache.start();
    }

    public int getFrom()
    {
        if(_cache == null || _cache.size() == 0)
            return -1;
        else
            return _cache.getFrom();
    }

    public int getTo()
    {
        if(_cache == null || _cache.size() == 0)
            return -1;
        else
            return _cache.getTo();
    }

    private void releaseThrownCache()
    {
        if(_thrownCache != null)
        {
            _thrownCache.release();
            _thrownCache.clear();
        }
        _thrownCache = null;
    }

    public boolean isDataInTheCache(int i)
    {
        if(_cache == null)
            return false;
        else
            return _cache.isIndexInCache(i);
    }

    public void setStatusViewer(CacheTableStatusViewer cachetablestatusviewer)
    {
        _statusViewer = cachetablestatusviewer;
    }

    void showStatus()
    {
        int i = _cache.getCacheStatus();
        if(i != _prevStatus)
        {
            if(_statusViewer != null)
                _statusViewer.showLoadingStatus(i);
            _prevStatus = i;
        }
    }

    boolean isRowDataInCache(int i)
    {
        return isDataInTheCache(i);
    }

    boolean gettingDataFinished()
    {
        if(_cache != null)
            return _cache.gettingDataFinished();
        else
            return false;
    }

    public void repaintLoadingStatus()
    {
        showStatus();
    }

    void release()
    {
        _serverModel = null;
        _cacheTableModel = null;
        if(_cache != null)
        {
            _cache.release();
            _cache.clear();
        }
        _cache = null;
        if(_thrownCache != null)
        {
            _thrownCache.release();
            _thrownCache.clear();
        }
        _thrownCache = null;
        _statusViewer = null;
    }

    public void disposeCache()
    {
        if(_cache != null)
        {
            _cache.release();
            _cache.clear();
        }
        _cache = null;
        if(_thrownCache != null)
        {
            _thrownCache.release();
            _thrownCache.clear();
        }
        _thrownCache = null;
    }

    private ServerModel _serverModel;
    private CacheTableModel _cacheTableModel;
    private final int INIT_STATE = 1;
    private final int READY_STATE = 2;
    private int _state;
    private int _count;
    private boolean _sizeHasGet;
    private Cache _cache;
    private Cache _thrownCache;
    private CacheTableStatusViewer _statusViewer;
    private int _prevStatus;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -