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