diff --git a/src/main/java/uk/ac/ebi/utils/collections/OptionsMap.java b/src/main/java/uk/ac/ebi/utils/collections/OptionsMap.java index 4af96bc3c..7a08b47bb 100644 --- a/src/main/java/uk/ac/ebi/utils/collections/OptionsMap.java +++ b/src/main/java/uk/ac/ebi/utils/collections/OptionsMap.java @@ -33,7 +33,7 @@ public default V getOpt ( String key, V defaultValue, Function co { Object v = this.get ( key ); if ( v == null ) return defaultValue; - if ( v instanceof String && converter != null ) return converter.apply ( (String) v ); + if ( v instanceof String str && converter != null ) return converter.apply ( str ); return (V) v; } diff --git a/src/main/java/uk/ac/ebi/utils/collections/OptionsMapWrapper.java b/src/main/java/uk/ac/ebi/utils/collections/OptionsMapWrapper.java index 96e5369ff..c78f5a2b0 100644 --- a/src/main/java/uk/ac/ebi/utils/collections/OptionsMapWrapper.java +++ b/src/main/java/uk/ac/ebi/utils/collections/OptionsMapWrapper.java @@ -31,6 +31,8 @@ public OptionsMapWrapper () public OptionsMapWrapper ( Map base ) { + // So that we don't keep nesting wrappers. + if ( base instanceof OptionsMapWrapper wbase ) base = wbase.base; this.base = base; } @@ -169,7 +171,7 @@ public Object merge ( String key, Object value, BiFunction