From f66e89662c091e082bd1d2feb6ac91513ccff273 Mon Sep 17 00:00:00 2001
From: Rafael Cavazin <rafaelcavazin@gmail.com>
Date: Sun, 21 Jul 2013 09:59:00 -0400
Subject: [PATCH] Merge branch 'master' of https://github.com/gitblit/gitblit

---
 src/main/java/com/gitblit/models/UserPreferences.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/models/UserPreferences.java b/src/main/java/com/gitblit/models/UserPreferences.java
new file mode 100644
index 0000000..e6baa28
--- /dev/null
+++ b/src/main/java/com/gitblit/models/UserPreferences.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2013 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.gitblit.models;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.TreeMap;
+
+import com.gitblit.utils.StringUtils;
+
+/**
+ * User preferences.
+ * 
+ * @author James Moger
+ *
+ */
+public class UserPreferences implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	public final String username;
+
+	public String locale;
+	
+	private final Map<String, UserRepositoryPreferences> repositoryPreferences = new TreeMap<String, UserRepositoryPreferences>();
+
+	public UserPreferences(String username) {
+		this.username = username;
+	}
+	
+	public Locale getLocale() {
+		if (StringUtils.isEmpty(locale)) {
+			return null;
+		}
+		return new Locale(locale);
+	}
+	
+	public UserRepositoryPreferences getRepositoryPreferences(String repositoryName) {
+		String key = repositoryName.toLowerCase();
+		if (!repositoryPreferences.containsKey(key)) {
+			// default preferences
+			UserRepositoryPreferences prefs = new UserRepositoryPreferences();
+			prefs.username = username;
+			prefs.repositoryName = repositoryName;
+			repositoryPreferences.put(key, prefs);
+		}
+		return repositoryPreferences.get(key);
+	}
+	
+	public void setRepositoryPreferences(UserRepositoryPreferences pref) {
+		repositoryPreferences.put(pref.repositoryName.toLowerCase(), pref);
+	}
+	
+	public boolean isStarredRepository(String repository) {
+		if (repositoryPreferences == null) {
+			return false;
+		}
+		String key = repository.toLowerCase();
+		if (repositoryPreferences.containsKey(key)) {
+			UserRepositoryPreferences pref = repositoryPreferences.get(key);
+			return pref.starred;
+		}
+		return false;
+	}
+	
+	public List<String> getStarredRepositories() {
+		List<String> list = new ArrayList<String>();
+		for (UserRepositoryPreferences prefs : repositoryPreferences.values()) {
+			if (prefs.starred) {
+				list.add(prefs.repositoryName);
+			}
+		}
+		Collections.sort(list);
+		return list;
+	}
+}

--
Gitblit v1.9.1