litesoft
@ 821
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
package org.litesoft.core.util.externalization; import org.litesoft.core.typeutils.*; /** * Implementation of a E13nResolver that Optionally Prefixes some text onto each * key as part of the lookup of the underlying template. * * @author georgs */ public class OptionallyPrefixingE13nResolver implements E13nResolver, HelperE13nResolver.NonCompleting { private final String prefix; private final HelperE13nResolver.NonCompleting proxied; public OptionallyPrefixingE13nResolver( String prefix, E13nResolver proxied ) { this.prefix = Strings.assertNotNullNotEmpty( "prefix", prefix ); this.proxied = HelperE13nResolver.validateProxy( proxied ); } @Override public String resolve( E13nData data ) { return HelperE13nResolver.resolveDataWith( data, this ); } @Override public String resolve( Enum<?> key ) { return HelperE13nResolver.resolveEnumWith( key, this ); } @Override public String resolve( String key ) { return HelperE13nResolver.resolveStringWith( key, this ); } @Override public String resolveWithoutCompleting( String key ) { String value = proxied.resolveWithoutCompleting( prefix + PREFIX_SEP + key ); return (value != null) ? value : proxied.resolveWithoutCompleting( key ); } @Override public String makeFullKey( String key ) { return proxied.makeFullKey( prefix + PREFIX_SEP + key ); } } |