1 package org.apache.archiva.policies;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.text.MessageFormat;
23 import java.util.Locale;
24 import java.util.ResourceBundle;
25 import java.util.stream.Collectors;
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public abstract class AbstractPolicy implements Policy {
42
43 private String policyPrefix;
44 private String optionPrefix;
45
46 public AbstractPolicy() {
47 policyPrefix = getId() + ".policy.";
48 optionPrefix = getId() + ".option.";
49 }
50
51 protected String getPolicyPrefix() {
52 return policyPrefix;
53 }
54
55 protected String getOptionPrefix() {
56 return optionPrefix;
57 }
58
59 protected void setPolicyPrefix(String policyPrefix) {
60 this.policyPrefix = policyPrefix;
61 }
62
63 public void setOptionPrefix(String optionPrefix) {
64 this.optionPrefix = optionPrefix;
65 }
66
67 private static final ResourceBundle getBundle(Locale locale) {
68 return ResourceBundle.getBundle(RESOURCE_BUNDLE, locale);
69 }
70
71
72 @Override
73 public String getName() {
74 return getName(Locale.getDefault());
75 }
76
77 @Override
78 public String getName(Locale locale) {
79 return getBundle(locale).getString(getPolicyPrefix() + "name");
80 }
81
82 @Override
83 public String getDescription(Locale locale) {
84 return MessageFormat.format(getBundle(locale).getString(getPolicyPrefix() + "description")
85 , getOptions().stream().map(o -> o.getId()).collect(Collectors.joining(",")));
86 }
87
88 @Override
89 public String getOptionDescription(Locale locale, PolicyOption option) {
90 return getBundle(locale).getString(getOptionPrefix()+option.getId()+".description");
91 }
92
93 @Override
94 public String getOptionName(Locale locale, PolicyOption option) {
95 return getBundle(locale).getString(getOptionPrefix()+option.getId()+".name");
96 }
97
98 }