From b94965e87929c6b4e42f9a2078dc0d910cc2637d Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 09 May 2012 07:59:00 -0400
Subject: [PATCH] Merge pull request #17 from peterloron/master

---
 src/com/gitblit/IStoredSettings.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/src/com/gitblit/IStoredSettings.java b/src/com/gitblit/IStoredSettings.java
index a376c81..2f45f09 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;
@@ -156,6 +157,24 @@
 		}
 		return defaultValue;
 	}
+	
+	/**
+	 * Returns the string value for the specified key.  If the key does not
+	 * exist an exception is thrown.
+	 * 
+	 * @param key
+	 * @return key value
+	 */
+	public String getRequiredString(String name) {
+		Properties props = getSettings();
+		if (props.containsKey(name)) {
+			String value = props.getProperty(name);
+			if (value != null) {
+				return value.trim();
+			}
+		}		
+		throw new RuntimeException("Property (" + name + ") does not exist");
+	}
 
 	/**
 	 * Returns a list of space-separated strings from the specified key.
@@ -194,4 +213,14 @@
 	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