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

📄 pypreferencescache.java

📁 Python Development Environment (Python IDE plugin for Eclipse). Features editor, code completion, re
💻 JAVA
字号:
package org.python.pydev.core.cache;

import java.util.HashMap;

import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;

public class PyPreferencesCache implements IPropertyChangeListener {

	private IPreferenceStore preferenceStore;
	private HashMap<String, Object> cache = new HashMap<String, Object>();
	
	public PyPreferencesCache(IPreferenceStore preferenceStore) {
		this.preferenceStore = preferenceStore;
		this.preferenceStore.addPropertyChangeListener(this);
	}

	public boolean getBoolean(String key) {
		Boolean b = (Boolean) cache.get(key);
		if(b == null){
			b = this.preferenceStore.getBoolean(key);
			cache.put(key, b);
		}
		return b;
	}
    
	/**
     * This is for a 'special case', when the value must be higher than 0
     *  
     * @param key this is the key we're interested in
     * @param defaultIfZeroOrLess the value to be returned if the actual value found is 0 or less
	 */
	public int getInt(String key, int defaultIfZeroOrLess) {
	    Integer b = (Integer) cache.get(key);
        
	    if(b == null || b <= 0){
	        b = this.preferenceStore.getInt(key);
            
            if(b <= 0){
                b = defaultIfZeroOrLess;
            }
	        cache.put(key, b);
	    }
        
	    return b;
	}
	
	public int getInt(String key) {
		Integer b = (Integer) cache.get(key);
		if(b == null){
			b = this.preferenceStore.getInt(key);
			cache.put(key, b);
		}
		return b;
	}

	public void propertyChange(PropertyChangeEvent event) {
		final Object newValue = event.getNewValue();
		cache.put(event.getProperty(), newValue); //simply override the cache (do not care about whether it is null, Boolean, etc).
	}

	/**
	 * Can be used to force clearing some value from the cache.
	 */
	public void clear(String key) {
		cache.put(key, null); 
	}

}

⌨️ 快捷键说明

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