package net.obnoxint.mcdev.omclib.metrics;
import java.util.Properties;
import net.obnoxint.mcdev.feature.FeatureProperties;
public final class OmcLibMetricsProperties extends FeatureProperties {
private static final int PROPERTY_MIN_REPORT_INTERVAL_MINUTES = 10;
private static final String PROPERTY_NAME_ALLOW_REPORT = "allowReport";
private static final String PROPERTY_NAME_CREATE_REPORT_DUMP = "createReportDump";
private static final String PROPERTY_NAME_REPORT_INTERVAL_MINUTES = "reportIntervalMinutes";
private boolean allowReport = true;
private boolean createReportDump = true;
private int reportIntervalMinutes = 15;
OmcLibMetricsProperties(final OmcLibMetricsFeature feature) {
super(feature);
}
public int getReportIntervalMinutes() {
return reportIntervalMinutes;
}
public boolean isAllowReport() {
return allowReport;
}
public boolean isCreateReportDump() {
return createReportDump;
}
public void setAllowReport(final boolean allowReport) {
if (this.allowReport != allowReport) {
this.allowReport = allowReport;
setDirty();
}
}
@Override
protected void onFileCreated() {
onStore();
}
@Override
protected void onLoaded() {
final Properties p = getProperties();
allowReport = Boolean.valueOf(p.getProperty(PROPERTY_NAME_ALLOW_REPORT));
createReportDump = Boolean.valueOf(p.getProperty(PROPERTY_NAME_CREATE_REPORT_DUMP));
reportIntervalMinutes = Integer.valueOf(p.getProperty(PROPERTY_NAME_REPORT_INTERVAL_MINUTES));
}
@Override
protected void onStore() {
final Properties p = getProperties();
p.setProperty(PROPERTY_NAME_ALLOW_REPORT, String.valueOf(allowReport));
p.setProperty(PROPERTY_NAME_CREATE_REPORT_DUMP, String.valueOf(createReportDump));
p.setProperty(PROPERTY_NAME_REPORT_INTERVAL_MINUTES, String.valueOf(reportIntervalMinutes));
}
void setCreateReportDump(final boolean createReportDump) {
if (this.createReportDump != createReportDump) {
this.createReportDump = createReportDump;
setDirty();
}
}
void setReportIntervalMinutes(final int reportIntervalMinutes) {
if (this.reportIntervalMinutes != reportIntervalMinutes && reportIntervalMinutes >= PROPERTY_MIN_REPORT_INTERVAL_MINUTES) {
this.reportIntervalMinutes = reportIntervalMinutes;
setDirty();
}
}
}