package org.erlide.ui.util;
import org.erlide.core.ErlangCore;
import org.erlide.engine.util.PreferencesHelper;
public class PerformanceTuning {
private static final String QUALIFIER = ErlangCore.PLUGIN_ID + "/performance";
private final PreferencesHelper helper;
/**
* Disable folding for files with more lines than this.
*/
private static final int DEFAULT_FOLDING_LIMIT = 2000;
private static final String FOLDING_DISABLE_LIMIT_KEY = "perf.limit.folding";
private int foldingLimit = DEFAULT_FOLDING_LIMIT;
public static PerformanceTuning get() {
final PerformanceTuning prefs = new PerformanceTuning();
prefs.load();
return prefs;
}
public static PerformanceTuning getDefault() {
final PerformanceTuning result = new PerformanceTuning();
result.setFoldingLimit(DEFAULT_FOLDING_LIMIT);
return result;
}
public PerformanceTuning() {
helper = PreferencesHelper.getHelper(QUALIFIER);
}
public void load() {
foldingLimit = helper.getInt(FOLDING_DISABLE_LIMIT_KEY, DEFAULT_FOLDING_LIMIT);
}
public void store() {
helper.putInt(FOLDING_DISABLE_LIMIT_KEY, foldingLimit);
}
public int getFoldingLimit() {
return foldingLimit;
}
public void setFoldingLimit(final int foldingLimit) {
this.foldingLimit = foldingLimit;
}
}