Revision e5668830
Added by Andreas Müller over 6 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/CdmPreference.java | ||
---|---|---|
56 | 56 |
} |
57 | 57 |
|
58 | 58 |
/** |
59 |
* @param test |
|
60 |
* @param string |
|
59 |
* @param predicate |
|
60 |
* @param value |
|
61 |
* @return |
|
62 |
*/ |
|
63 |
public static CdmPreference NewDatabaseInstance(PreferencePredicate predicate, String value) { |
|
64 |
return new CdmPreference(PreferenceSubject.NewDatabaseInstance(), predicate, value); |
|
65 |
} |
|
66 |
|
|
67 |
/** |
|
68 |
* @param predicate |
|
69 |
* @param value |
|
61 | 70 |
* @return |
62 | 71 |
*/ |
63 |
public static CdmPreference NewDatabaseInstance(PreferencePredicate test, String value) {
|
|
64 |
return new CdmPreference(PreferenceSubject.NewDatabaseInstance(), test, value);
|
|
72 |
public static CdmPreference NewVaadinInstance(PreferencePredicate predicate, String value) {
|
|
73 |
return new CdmPreference(PreferenceSubject.NewVaadinInstance(), predicate, value);
|
|
65 | 74 |
} |
66 | 75 |
|
67 | 76 |
public static PrefKey NewKey(PreferenceSubject subject, PreferencePredicate predicate){ |
... | ... | |
124 | 133 |
if (predicate.length() > 255) { |
125 | 134 |
throw new IllegalArgumentException("Predicate must not be longer then 255 for preference"); |
126 | 135 |
} |
127 |
if (!subject.matches("/([A-Za-z]+\\[.*\\])?")){
|
|
128 |
throw new IllegalArgumentException("Predicate does not follow the required syntax");
|
|
136 |
if (!subject.matches(PreferenceSubject.ROOT + "(([A-Za-z]+\\[.*\\]|"+PreferenceSubject.VAADIN+")"+PreferenceSubject.SEP+")?")){
|
|
137 |
throw new IllegalArgumentException("Subject does not follow the required syntax");
|
|
129 | 138 |
} |
130 | 139 |
|
131 | 140 |
|
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/PreferencePredicate.java | ||
---|---|---|
36 | 36 |
AbcdImportConfig(UUID.fromString("65380375-d041-458c-8275-c36cdc1f34df"), "AbcdImportConfig", "model.import.ABCD"), |
37 | 37 |
BioCaseProvider(UUID.fromString("bd22c85c-f4e8-4771-ae7b-5750868762c4"), "BioCaseProvider", "model.import.BP"), |
38 | 38 |
//vaadin |
39 |
AvailableDistributionStatus(UUID.fromString("6721599e-686b-460e-9d57-cfd364f4b626"), "Available Distribution Status", "model.distribution.statuslist") |
|
39 |
AvailableDistributionStatus(UUID.fromString("6721599e-686b-460e-9d57-cfd364f4b626"), "Available Distribution Status", "model.distribution.status.term"), |
|
40 |
AvailableDistributionAreaVocabularies(UUID.fromString("dd1f35d5-dbf3-426b-9ed3-8b5992cb2e27"), "Available Distribution Area Vocabularies", "model.distribution.area.voc") |
|
40 | 41 |
; |
41 | 42 |
|
42 | 43 |
|
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/PreferenceSubject.java | ||
---|---|---|
20 | 20 |
|
21 | 21 |
public static final String ROOT = "/"; |
22 | 22 |
public static final String SEP = "/"; |
23 |
public static final String VAADIN = "vaadin"; |
|
23 | 24 |
|
24 | 25 |
private String subject; |
25 | 26 |
|
... | ... | |
37 | 38 |
} |
38 | 39 |
|
39 | 40 |
public static PreferenceSubject NewVaadinInstance(){ |
40 |
return new PreferenceSubject(ROOT + "Vaadin" + SEP);
|
|
41 |
return new PreferenceSubject(ROOT + VAADIN + SEP);
|
|
41 | 42 |
} |
42 | 43 |
|
43 | 44 |
|
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/metadata/CdmPreferenceTest.java | ||
---|---|---|
108 | 108 |
CdmPreference prefs = null; |
109 | 109 |
String subject2 = null; |
110 | 110 |
try { |
111 |
subject2 = "/TaxonNode[#t1#18681#6392#5358#9#2#]"; |
|
111 |
subject2 = "/TaxonNode[#t1#18681#6392#5358#9#2#]/";
|
|
112 | 112 |
prefs = new CdmPreference(subject2, predicate, value); |
113 | 113 |
Assert.assertEquals(subject2, prefs.getSubject()); |
114 | 114 |
Assert.assertEquals(predicate, prefs.getPredicate()); |
... | ... | |
132 | 132 |
} catch (Exception e) { |
133 | 133 |
//ok |
134 | 134 |
} |
135 |
|
|
136 |
try { |
|
137 |
prefs = CdmPreference.NewVaadinInstance(PreferencePredicate.AvailableDistributionStatus, value); |
|
138 |
} catch (Exception e) { |
|
139 |
Assert.fail("Syntax for /Vaadin/ should not fail"); |
|
140 |
} |
|
141 |
|
|
135 | 142 |
} |
136 | 143 |
|
137 | 144 |
@Test |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IPreferenceService.java | ||
---|---|---|
87 | 87 |
*/ |
88 | 88 |
public CdmPreference findDatabase(PreferencePredicate predicate); |
89 | 89 |
|
90 |
/** |
|
91 |
* Retrieve the vaadin wide preference for the given predicate. |
|
92 |
* @param key |
|
93 |
* @return |
|
94 |
*/ |
|
95 |
public CdmPreference findVaadin(PreferencePredicate predicate); |
|
90 | 96 |
|
91 | 97 |
/** |
92 | 98 |
* Returns the best matching preference that matches the given |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/PreferenceServiceImpl.java | ||
---|---|---|
49 | 49 |
} |
50 | 50 |
|
51 | 51 |
/** |
52 |
* Retrieve the database wide preference for the given predicate. |
|
53 |
* @param key |
|
54 |
* @return |
|
52 |
* {@inheritDoc} |
|
55 | 53 |
*/ |
56 | 54 |
@Override |
57 | 55 |
public CdmPreference findDatabase(PreferencePredicate predicate){ |
... | ... | |
59 | 57 |
return find(key); |
60 | 58 |
} |
61 | 59 |
|
60 |
/** |
|
61 |
* {@inheritDoc} |
|
62 |
*/ |
|
63 |
@Override |
|
64 |
public CdmPreference findVaadin(PreferencePredicate predicate){ |
|
65 |
PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewVaadinInstance(), predicate); |
|
66 |
return find(key); |
|
67 |
} |
|
68 |
|
|
62 | 69 |
|
63 | 70 |
@Override |
64 | 71 |
@Transactional(readOnly = false) |
Also available in: Unified diff
ref #6903 preferences for vaadin