/*
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.tools.visualvm.profiling.presets;
import java.util.prefs.Preferences;
import org.openide.util.NbBundle;
/**
*
* @author Jiri Sedlacek
*/
public final class ProfilerPreset {
private static final String PROP_NAME = "prof_preset_name"; // NOI18N
private static final String PROP_SELECTOR = "prof_preset_selector"; // NOI18N
private static final String PROP_FILTER_MODE_S = "prof_preset_filterMode_s"; // NOI18N
private static final String PROP_FILTER_S = "prof_preset_filter_s"; // NOI18N
private static final String PROP_SAMPLING_RATE_S = "prof_preset_samplingRate_s"; // NOI18N
private static final String PROP_REFRESH_RATE_S = "prof_preset_refreshRate_s"; // NOI18N
private static final String PROP_SAMPLING_REFRESH_RATE_S = "prof_preset_samplingRefreshRate_s"; // NOI18N
private static final String PROP_ROOTS_P = "prof_preset_roots_p"; // NOI18N
private static final String PROP_RUNNABLES_P = "prof_preset_runnables_p"; // NOI18N
private static final String PROP_FILTER_MODE_P = "prof_preset_filterMode_p"; // NOI18N
private static final String PROP_FILTER_P = "prof_preset_filter_p"; // NOI18N
private static final String PROP_MEMORY_MODE_P = "prof_preset_memoryMode_p"; // NOI18N
private static final String PROP_ALLOC_P = "prof_preset_alloc_p"; // NOI18N
private static final String PROP_STACKS_P = "prof_preset_stacks_p"; // NOI18N
private boolean valid;
private String name;
private String selector;
private boolean filterModeS;
private String filterS;
private int samplingRateS;
private int refreshRateS;
private int samplingRefreshRateS;
private String rootsP;
private boolean runnablesP;
private boolean filterModeP;
private String filterP;
private boolean memoryModeP;
private int allocP;
private boolean stacksP;
public ProfilerPreset(String name, String selector) {
this.valid = true;
this.name = name;
this.selector = selector;
this.filterModeS = true;
this.filterS = ""; // NOI18N
this.samplingRateS = 100;
this.refreshRateS = 1000;
this.samplingRefreshRateS = 1000;
this.rootsP = ""; // NOI18N
this.runnablesP = true;
this.filterModeP = true;
this.filterP = ""; // NOI18N
this.memoryModeP = true;
this.allocP = 10;
this.stacksP = false;
}
ProfilerPreset(ProfilerPreset preset) {
this.valid = preset.valid;
this.name = preset.name;
this.selector = preset.selector;
this.filterModeS = preset.filterModeS;
this.filterS = preset.filterS;
this.samplingRateS = preset.samplingRateS;
this.refreshRateS = preset.refreshRateS;
this.samplingRefreshRateS = preset.samplingRefreshRateS;
this.rootsP = preset.rootsP;
this.runnablesP = preset.runnablesP;
this.filterModeP = preset.filterModeP;
this.filterP = preset.filterP;
this.memoryModeP = preset.memoryModeP;
this.allocP = preset.allocP;
this.stacksP = preset.stacksP;
}
ProfilerPreset(Preferences prefs, String prefix) {
valid = true;
name = prefs.get(prefix + PROP_NAME, NbBundle.getMessage(ProfilerPreset.class, "MSG_Preset")); // NOI18N
selector = prefs.get(prefix + PROP_SELECTOR, ""); // NOI18N
filterModeS = prefs.getBoolean(prefix + PROP_FILTER_MODE_S, true);
filterS = prefs.get(prefix + PROP_FILTER_S, ""); // NOI18N
samplingRateS = prefs.getInt(prefix + PROP_SAMPLING_RATE_S, 100);
refreshRateS = prefs.getInt(prefix + PROP_REFRESH_RATE_S, 1000);
samplingRefreshRateS = prefs.getInt(prefix + PROP_SAMPLING_REFRESH_RATE_S, 1000);
rootsP = prefs.get(prefix + PROP_ROOTS_P, ""); // NOI18N
runnablesP = prefs.getBoolean(prefix + PROP_RUNNABLES_P, true);
filterModeP = prefs.getBoolean(prefix + PROP_FILTER_MODE_P, true);
filterP = prefs.get(prefix + PROP_FILTER_P, ""); // NOI18N
memoryModeP = prefs.getBoolean(prefix + PROP_MEMORY_MODE_P, true);
allocP = prefs.getInt(prefix + PROP_ALLOC_P, 10);
stacksP = prefs.getBoolean(prefix + PROP_STACKS_P, false);
}
void toPreferences(Preferences prefs, String prefix) {
prefs.put(prefix + PROP_NAME, name);
prefs.put(prefix + PROP_SELECTOR, selector);
prefs.putBoolean(prefix + PROP_FILTER_MODE_S, filterModeS);
prefs.put(prefix + PROP_FILTER_S, filterS);
prefs.putInt(prefix + PROP_SAMPLING_RATE_S, samplingRateS);
prefs.putInt(prefix + PROP_REFRESH_RATE_S, refreshRateS);
prefs.putInt(prefix + PROP_SAMPLING_REFRESH_RATE_S, samplingRefreshRateS);
prefs.put(prefix + PROP_ROOTS_P, rootsP);
prefs.putBoolean(prefix + PROP_RUNNABLES_P, runnablesP);
prefs.putBoolean(prefix + PROP_FILTER_MODE_P, filterModeP);
prefs.put(prefix + PROP_FILTER_P, filterP);
prefs.putBoolean(prefix + PROP_MEMORY_MODE_P, memoryModeP);
prefs.putInt(prefix + PROP_ALLOC_P, allocP);
prefs.putBoolean(prefix + PROP_STACKS_P, stacksP);
}
void setValid(boolean valid) {
this.valid = valid;
}
boolean isValid() {
return valid;
}
public void setName(String name) {
if (name != null && !name.isEmpty()) this.name = name;
}
public String getName() {
return name;
}
public void setSelector(String selector) {
this.selector = selector;
}
public String getSelector() {
return selector;
}
public void setFilterModeS(boolean filterMode) {
this.filterModeS = filterMode;
}
public boolean getFilterModeS() {
return filterModeS;
}
public void setFilterS(String filter) {
this.filterS = filter;
}
public String getFilterS() {
return filterS;
}
public void setSamplingRateS(int samplingRate) {
this.samplingRateS = samplingRate;
}
public int getSamplingRateS() {
return samplingRateS;
}
public void setRefreshRateS(int refreshRate) {
this.refreshRateS = refreshRate;
}
public int getRefreshRateS() {
return refreshRateS;
}
public void setSamplingRefreshRateS(int samplingRefreshRateS) {
this.samplingRefreshRateS = samplingRefreshRateS;
}
public int getSamplingRefreshRateS() {
return samplingRefreshRateS;
}
public void setRootsP(String roots) {
this.rootsP = roots;
}
public String getRootsP() {
return rootsP;
}
public void setRunnablesP(boolean runnables) {
this.runnablesP = runnables;
}
public boolean getRunnablesP() {
return runnablesP;
}
public void setFilterModeP(boolean filterMode) {
this.filterModeP = filterMode;
}
public boolean getFilterModeP() {
return filterModeP;
}
public void setFilterP(String filter) {
this.filterP = filter;
}
public String getFilterP() {
return filterP;
}
public void setMemoryModeP(boolean memoryMode) {
this.memoryModeP = memoryMode;
}
public boolean getMemoryModeP() {
return memoryModeP;
}
public void setAllocP(int alloc) {
this.allocP = alloc;
}
public int getAllocP() {
return allocP;
}
public void setStacksP(boolean stacks) {
this.stacksP = stacks;
}
public boolean getStacksP() {
return stacksP;
}
public String toString() {
return getName();
}
public boolean equals(Object o) {
return o instanceof ProfilerPreset ? getName().equals(((ProfilerPreset)o).getName()) : false;
}
public int hashCode() {
return getName().hashCode();
}
}