소스 검색

Add highlight strings to profiles.

These are highlight strings other than the current nickname that
the user wishes to highlight on (e.g. their real name, or 'D*').
pull/343/head
Chris Smith 9 년 전
부모
커밋
b872ff9291
2개의 변경된 파일20개의 추가작업 그리고 3개의 파일을 삭제
  1. 11
    1
      src/com/dmdirc/config/profiles/Profile.java
  2. 9
    2
      src/com/dmdirc/config/profiles/YamlProfileStore.java

+ 11
- 1
src/com/dmdirc/config/profiles/Profile.java 파일 보기

24
 
24
 
25
 import com.google.auto.value.AutoValue;
25
 import com.google.auto.value.AutoValue;
26
 
26
 
27
+import java.util.Collection;
28
+import java.util.Collections;
27
 import java.util.List;
29
 import java.util.List;
28
 import java.util.Optional;
30
 import java.util.Optional;
29
 
31
 
44
 
46
 
45
     public abstract List<String> getNicknames();
47
     public abstract List<String> getNicknames();
46
 
48
 
49
+    public abstract Collection<String> getHighlights();
50
+
47
     public static Profile create(final String name, final String realName,
51
     public static Profile create(final String name, final String realName,
48
             final Optional<String> ident, final List<String> nicknames) {
52
             final Optional<String> ident, final List<String> nicknames) {
49
-        return new AutoValue_Profile(name, realName, ident, nicknames);
53
+        return create(name, realName, ident, nicknames, Collections.emptyList());
54
+    }
55
+
56
+    public static Profile create(final String name, final String realName,
57
+            final Optional<String> ident, final List<String> nicknames,
58
+            final Collection<String> highlights) {
59
+        return new AutoValue_Profile(name, realName, ident, nicknames, highlights);
50
     }
60
     }
51
 
61
 
52
 }
62
 }

+ 9
- 2
src/com/dmdirc/config/profiles/YamlProfileStore.java 파일 보기

26
 
26
 
27
 import java.nio.file.Path;
27
 import java.nio.file.Path;
28
 import java.util.Collection;
28
 import java.util.Collection;
29
+import java.util.Collections;
29
 import java.util.HashMap;
30
 import java.util.HashMap;
30
 import java.util.List;
31
 import java.util.List;
31
 import java.util.Map;
32
 import java.util.Map;
75
             final String name = requiredString(map, "name");
76
             final String name = requiredString(map, "name");
76
             final String realname = requiredString(map, "realname");
77
             final String realname = requiredString(map, "realname");
77
             final Optional<String> ident = Optional.ofNullable(optionalString(map, "ident"));
78
             final Optional<String> ident = Optional.ofNullable(optionalString(map, "ident"));
78
-            final List<String> nicknames = asList(map.get("nicknames"), s -> Optional.of(s.toString()));
79
-            return Optional.of(Profile.create(name, realname, ident, nicknames));
79
+            final List<String> nicknames =
80
+                    asList(map.get("nicknames"), s -> Optional.of(s.toString()));
81
+            final List<String> highlights =
82
+                    map.containsKey("highlights")
83
+                            ? asList(map.get("highlights"), s -> Optional.of(s.toString()))
84
+                            : Collections.emptyList();
85
+            return Optional.of(Profile.create(name, realname, ident, nicknames, highlights));
80
         } catch (IllegalArgumentException ex) {
86
         } catch (IllegalArgumentException ex) {
81
             LOG.info("Unable to read profile", ex);
87
             LOG.info("Unable to read profile", ex);
82
             return Optional.empty();
88
             return Optional.empty();
89
         map.put("name", object.getName());
95
         map.put("name", object.getName());
90
         map.put("realname", object.getRealname());
96
         map.put("realname", object.getRealname());
91
         map.put("nicknames", object.getNicknames().toArray());
97
         map.put("nicknames", object.getNicknames().toArray());
98
+        map.put("highlights", object.getHighlights().toArray());
92
         object.getIdent().ifPresent(v -> map.put("ident", v));
99
         object.getIdent().ifPresent(v -> map.put("ident", v));
93
         return map;
100
         return map;
94
     }
101
     }

Loading…
취소
저장