From 4c835e61e8ea2d5af2acf0c85c3c1f0d06f419df Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 26 Oct 2011 17:19:55 -0400
Subject: [PATCH] Documentation.
---
src/com/gitblit/IStoredSettings.java | 101 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 96 insertions(+), 5 deletions(-)
diff --git a/src/com/gitblit/IStoredSettings.java b/src/com/gitblit/IStoredSettings.java
index e220a81..2d8b605 100644
--- a/src/com/gitblit/IStoredSettings.java
+++ b/src/com/gitblit/IStoredSettings.java
@@ -17,6 +17,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
import org.slf4j.Logger;
@@ -24,6 +25,12 @@
import com.gitblit.utils.StringUtils;
+/**
+ * Base class for stored settings implementations.
+ *
+ * @author James Moger
+ *
+ */
public abstract class IStoredSettings {
protected final Logger logger;
@@ -42,6 +49,13 @@
return props;
}
+ /**
+ * Returns the list of keys whose name starts with the specified prefix. If
+ * the prefix is null or empty, all key names are returned.
+ *
+ * @param startingWith
+ * @return list of keys
+ */
public List<String> getAllKeys(String startingWith) {
List<String> keys = new ArrayList<String>();
Properties props = getSettings();
@@ -59,24 +73,42 @@
return keys;
}
+ /**
+ * Returns the boolean value for the specified key. If the key does not
+ * exist or the value for the key can not be interpreted as a boolean, the
+ * defaultValue is returned.
+ *
+ * @param key
+ * @param defaultValue
+ * @return key value or defaultValue
+ */
public boolean getBoolean(String name, boolean defaultValue) {
Properties props = getSettings();
if (props.containsKey(name)) {
String value = props.getProperty(name);
if (!StringUtils.isEmpty(value)) {
- return Boolean.parseBoolean(value);
+ return Boolean.parseBoolean(value.trim());
}
}
return defaultValue;
}
+ /**
+ * Returns the integer value for the specified key. If the key does not
+ * exist or the value for the key can not be interpreted as an integer, the
+ * defaultValue is returned.
+ *
+ * @param key
+ * @param defaultValue
+ * @return key value or defaultValue
+ */
public int getInteger(String name, int defaultValue) {
Properties props = getSettings();
if (props.containsKey(name)) {
try {
String value = props.getProperty(name);
if (!StringUtils.isEmpty(value)) {
- return Integer.parseInt(value);
+ return Integer.parseInt(value.trim());
}
} catch (NumberFormatException e) {
logger.warn("Failed to parse integer for " + name + " using default of "
@@ -86,21 +118,64 @@
return defaultValue;
}
- public String getString(String name, String defaultValue) {
+ /**
+ * Returns the char value for the specified key. If the key does not exist
+ * or the value for the key can not be interpreted as a char, the
+ * defaultValue is returned.
+ *
+ * @param key
+ * @param defaultValue
+ * @return key value or defaultValue
+ */
+ public char getChar(String name, char defaultValue) {
Properties props = getSettings();
if (props.containsKey(name)) {
String value = props.getProperty(name);
- if (value != null) {
- return value;
+ if (!StringUtils.isEmpty(value)) {
+ return value.trim().charAt(0);
}
}
return defaultValue;
}
+ /**
+ * Returns the string value for the specified key. If the key does not exist
+ * or the value for the key can not be interpreted as a string, the
+ * defaultValue is returned.
+ *
+ * @param key
+ * @param defaultValue
+ * @return key value or defaultValue
+ */
+ public String getString(String name, String defaultValue) {
+ Properties props = getSettings();
+ if (props.containsKey(name)) {
+ String value = props.getProperty(name);
+ if (value != null) {
+ return value.trim();
+ }
+ }
+ return defaultValue;
+ }
+
+ /**
+ * Returns a list of space-separated strings from the specified key.
+ *
+ * @param name
+ * @return list of strings
+ */
public List<String> getStrings(String name) {
return getStrings(name, " ");
}
+ /**
+ * Returns a list of strings from the specified key using the specified
+ * string separator.
+ *
+ * @param name
+ * @param separator
+ * @return list of strings
+ */
public List<String> getStrings(String name, String separator) {
List<String> strings = new ArrayList<String>();
Properties props = getSettings();
@@ -111,7 +186,23 @@
return strings;
}
+ /**
+ * Override the specified key with the specified value.
+ *
+ * @param key
+ * @param value
+ */
public void overrideSetting(String key, String value) {
overrides.put(key, value);
}
+
+ /**
+ * Updates the values for the specified keys and persists the entire
+ * configuration file.
+ *
+ * @param map
+ * of key, value pairs
+ * @return true if successful
+ */
+ public abstract boolean saveSettings(Map<String, String> updatedSettings);
}
\ No newline at end of file
--
Gitblit v1.9.1