Skip to content

Commit 9abe3d9

Browse files
committed
PrefService: remove Preferences imports
The whole point of the PrefService is to allow for any preference implementation, while the DefaultPrefService uses java.util.Preferences. Thus the java.util.Preferences imports have been removed from the PrefService, and the necessary Class and String-based indexing methods have been added. Updated the DefaultPrefService implementation and usage of the service accordingly.
1 parent a9a109c commit 9abe3d9

File tree

3 files changed

+224
-96
lines changed

3 files changed

+224
-96
lines changed

src/main/java/org/scijava/preferences/DefaultPrefService.java

Lines changed: 151 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,6 @@ public void clear(final Class<?> c) {
224224
// TODO - Evaluate which of these methods are really needed, and which are
225225
// duplicate of similar functionality above.
226226

227-
/** Clears everything. */
228227
@Override
229228
public void clearAll() {
230229
try {
@@ -237,14 +236,153 @@ public void clearAll() {
237236
}
238237
}
239238

240-
/** Clears the node. */
241239
@Override
242240
public void clear(final String key) {
243-
clear(prefs(null), key);
241+
clear((Class<?>) null, key);
244242
}
245243

246244
@Override
247-
public void clear(final Preferences preferences, final String key) {
245+
public void clear(final Class<?> prefClass, final String key) {
246+
final Preferences preferences = prefs(prefClass);
247+
clear(preferences, key);
248+
}
249+
250+
@Override
251+
public void clear(final String absolutePath, final String key) {
252+
final Preferences preferences = prefs(absolutePath);
253+
clear(preferences, key);
254+
}
255+
256+
@Override
257+
public void remove(final Class<?> prefClass, final String key) {
258+
final Preferences preferences = prefs(prefClass);
259+
remove(preferences, key);
260+
}
261+
262+
@Override
263+
public void remove(final String absolutePath, final String key) {
264+
final Preferences preferences = prefs(absolutePath);
265+
remove(preferences, key);
266+
}
267+
268+
@Override
269+
public void putMap(final Map<String, String> map, final String key) {
270+
putMap((Class<?>) null, map, key);
271+
}
272+
273+
@Override
274+
public void putMap(final Class<?> prefClass, final Map<String, String> map,
275+
final String key)
276+
{
277+
final Preferences preferences = prefs(prefClass);
278+
putMap(preferences.node(key), map);
279+
}
280+
281+
@Override
282+
public void putMap(final String absolutePath, final Map<String, String> map,
283+
final String key)
284+
{
285+
final Preferences preferences = prefs(absolutePath);
286+
putMap(preferences.node(key), map);
287+
}
288+
289+
@Override
290+
public void putMap(final Class<?> prefClass, final Map<String, String> map) {
291+
final Preferences preferences = prefs(prefClass);
292+
putMap(preferences, map);
293+
}
294+
295+
@Override
296+
public void putMap(final String absolutePath, final Map<String, String> map) {
297+
final Preferences preferences = prefs(absolutePath);
298+
putMap(preferences, map);
299+
}
300+
301+
@Override
302+
public Map<String, String> getMap(final String key) {
303+
return getMap((Class<?>) null, key);
304+
}
305+
306+
@Override
307+
public Map<String, String> getMap(final Class<?> prefClass, final String key)
308+
{
309+
final Preferences preferences = prefs(prefClass);
310+
return getMap(preferences.node(key));
311+
}
312+
313+
@Override
314+
public Map<String, String>
315+
getMap(final String absolutePath, final String key)
316+
{
317+
final Preferences preferences = prefs(absolutePath);
318+
return getMap(preferences.node(key));
319+
}
320+
321+
@Override
322+
public Map<String, String> getMap(final Class<?> prefClass) {
323+
final Preferences preferences = prefs(prefClass);
324+
return getMap(preferences);
325+
}
326+
327+
@Override
328+
public void putList(final List<String> list, final String key) {
329+
putList((Class<?>) null, list, key);
330+
}
331+
332+
@Override
333+
public void putList(final Class<?> prefClass, final List<String> list,
334+
final String key)
335+
{
336+
final Preferences preferences = prefs(prefClass);
337+
putList(preferences.node(key), list);
338+
}
339+
340+
@Override
341+
public void putList(final String absolutePath, final List<String> list,
342+
final String key)
343+
{
344+
final Preferences preferences = prefs(absolutePath);
345+
putList(preferences.node(key), list);
346+
}
347+
348+
@Override
349+
public void putList(final Class<?> prefClass, final List<String> list) {
350+
final Preferences preferences = prefs(prefClass);
351+
putList(preferences, list);
352+
}
353+
354+
@Override
355+
public void putList(final String absolutePath, final List<String> list) {
356+
final Preferences preferences = prefs(absolutePath);
357+
putList(preferences, list);
358+
}
359+
360+
@Override
361+
public List<String> getList(final String key) {
362+
return getList((Class<?>) null, key);
363+
}
364+
365+
@Override
366+
public List<String> getList(final Class<?> prefClass, final String key) {
367+
final Preferences preferences = prefs(prefClass);
368+
return getList(preferences.node(key));
369+
}
370+
371+
@Override
372+
public List<String> getList(final String absolutePath, final String key) {
373+
final Preferences preferences = prefs(absolutePath);
374+
return getList(preferences.node(key));
375+
}
376+
377+
@Override
378+
public List<String> getList(final Class<?> prefClass) {
379+
final Preferences preferences = prefs(prefClass);
380+
return getList(preferences);
381+
}
382+
383+
// -- Helper methods --
384+
385+
private void clear(final Preferences preferences, final String key) {
248386
try {
249387
if (preferences.nodeExists(key)) {
250388
preferences.node(key).clear();
@@ -255,9 +393,7 @@ public void clear(final Preferences preferences, final String key) {
255393
}
256394
}
257395

258-
/** Removes the node. */
259-
@Override
260-
public void remove(final Preferences preferences, final String key) {
396+
private void remove(final Preferences preferences, final String key) {
261397
try {
262398
if (preferences.nodeExists(key)) {
263399
preferences.node(key).removeNode();
@@ -268,22 +404,7 @@ public void remove(final Preferences preferences, final String key) {
268404
}
269405
}
270406

271-
/** Puts a list into the preferences. */
272-
@Override
273-
public void putMap(final Map<String, String> map, final String key) {
274-
putMap(prefs(null), map, key);
275-
}
276-
277-
@Override
278-
public void putMap(final Preferences preferences,
279-
final Map<String, String> map, final String key)
280-
{
281-
putMap(preferences.node(key), map);
282-
}
283-
284-
/** Puts a list into the preferences. */
285-
@Override
286-
public void putMap(final Preferences preferences,
407+
private void putMap(final Preferences preferences,
287408
final Map<String, String> map)
288409
{
289410
if (preferences == null) {
@@ -296,24 +417,10 @@ public void putMap(final Preferences preferences,
296417
preferences.put(entry.getKey().toString(), value == null ? null : value
297418
.toString());
298419
}
299-
}
300420

301-
/** Gets a Map from the preferences. */
302-
@Override
303-
public Map<String, String> getMap(final String key) {
304-
return getMap(prefs(null), key);
305421
}
306422

307-
@Override
308-
public Map<String, String> getMap(final Preferences preferences,
309-
final String key)
310-
{
311-
return getMap(preferences.node(key));
312-
}
313-
314-
/** Gets a Map from the preferences. */
315-
@Override
316-
public Map<String, String> getMap(final Preferences preferences) {
423+
private Map<String, String> getMap(final Preferences preferences) {
317424
if (preferences == null) {
318425
throw new IllegalArgumentException("Preferences not set.");
319426
}
@@ -330,22 +437,7 @@ public Map<String, String> getMap(final Preferences preferences) {
330437
return map;
331438
}
332439

333-
/** Puts a list into the preferences. */
334-
@Override
335-
public void putList(final List<String> list, final String key) {
336-
putList(prefs(null), list, key);
337-
}
338-
339-
@Override
340-
public void putList(final Preferences preferences, final List<String> list,
341-
final String key)
342-
{
343-
putList(preferences.node(key), list);
344-
}
345-
346-
/** Puts a list into the preferences. */
347-
@Override
348-
public void putList(final Preferences preferences, final List<String> list) {
440+
private void putList(final Preferences preferences, final List<String> list) {
349441
if (preferences == null) {
350442
throw new IllegalArgumentException("Preferences not set.");
351443
}
@@ -355,23 +447,7 @@ public void putList(final Preferences preferences, final List<String> list) {
355447
}
356448
}
357449

358-
/** Gets a List from the preferences. */
359-
@Override
360-
public List<String> getList(final String key) {
361-
return getList(prefs(null), key);
362-
}
363-
364-
@Override
365-
public List<String> getList(final Preferences preferences, final String key) {
366-
return getList(preferences.node(key));
367-
}
368-
369-
/**
370-
* Gets a List from the preferences. Returns an empty list if nothing in
371-
* prefs.
372-
*/
373-
@Override
374-
public List<String> getList(final Preferences preferences) {
450+
private List<String> getList(final Preferences preferences) {
375451
if (preferences == null) {
376452
throw new IllegalArgumentException("Preferences not set.");
377453
}
@@ -386,12 +462,14 @@ public List<String> getList(final Preferences preferences) {
386462
return list;
387463
}
388464

389-
// -- Helper methods --
390-
391465
private Preferences prefs(final Class<?> c) {
392466
return Preferences.userNodeForPackage(c == null ? Prefs.class : c);
393467
}
394468

469+
private Preferences prefs(final String absolutePath) {
470+
return Preferences.systemRoot().node(absolutePath);
471+
}
472+
395473
private String key(final Class<?> c, final String name) {
396474
return c == null ? name : c.getSimpleName() + "." + name;
397475
}

0 commit comments

Comments
 (0)