@Override public String lookup(String key) { if (this.map == null) { return null; } else { int dotIndex = key.indexOf("."); Object obj = this.map.get(key.substring(0, dotIndex < 0 ? key.length() : dotIndex)); if (obj instanceof Map) { return new MapOfMapStrLookup(((Map) obj)).lookup(key.substring(key.indexOf(".") + 1)); } else if (obj != null && !(obj instanceof String) && key.contains(".")) { final String subkey = key.substring(key.indexOf(".") + 1); for (PropertyDescriptor descriptor : new PropertyUtilsBean().getPropertyDescriptors(obj)) { if (descriptor.getName().equals(subkey)) { try { return descriptor.getReadMethod().invoke(obj).toString(); } catch (Exception ex) { continue; } } } } return obj == null ? "" : obj.toString(); } } }
@Override public String lookup(String key) { if (this.map == null) { return null; } else { int dotIndex = key.indexOf("."); Object obj = this.map.get(key.substring(0, dotIndex < 0 ? key.length() : dotIndex)); if (obj instanceof Map) { return new MapOfMapStrLookup(((Map) obj)).lookup(key.substring(key.indexOf(".") + 1)); } else if (obj != null && !(obj instanceof String) && key.contains(".")) { final String subkey = key.substring(key.indexOf(".") + 1); for (PropertyDescriptor descriptor : new PropertyUtilsBean().getPropertyDescriptors(obj)) { if (descriptor.getName().equals(subkey)) { try { return descriptor.getReadMethod().invoke(obj).toString(); } catch (Exception ex) { continue; } } } } return obj == null ? "" : obj.toString(); } } }
public static <T> T interpolate(final Map<String, Object> values, final T object) { interpolator.setDefaultLookup(new MapOfMapStrLookup(values)); return proxy(object); }
public static <T> T interpolate(final Map<String, Object> values, final T object) { interpolator.setDefaultLookup(new MapOfMapStrLookup(values)); return proxy(object); }