@SuppressWarnings("unchecked") private <T> T getInternal(Class<T> pluginClass, T defaultImpl) { assert (pluginClass.isInstance(defaultImpl)); return (T) map.computeIfAbsent(pluginClass, clazz -> { // check for an implementation from System.getProperty first Object impl = getPluginImplementationViaProperty(clazz); return impl != null ? impl : defaultImpl; }); }
@SuppressWarnings("unchecked") private <T> T getInternal(Class<T> pluginClass, T defaultImpl) { assert (pluginClass.isInstance(defaultImpl)); return (T) map.computeIfAbsent(pluginClass, clazz -> { // check for an implementation from System.getProperty first Object impl = getPluginImplementationViaProperty(clazz); return impl != null ? impl : defaultImpl; }); }
@SuppressWarnings("unchecked") private <T> T getInternal(Class<T> pluginClass, T defaultImpl) { requireNonNull(pluginClass); requireNonNull(defaultImpl); Preconditions.checkArgument(pluginClass.isInstance(defaultImpl)); return (T) map.computeIfAbsent(pluginClass, clazz -> { // check for an implementation from System.getProperty first Object impl = getPluginImplementationViaProperty(clazz); return impl != null ? impl : defaultImpl; }); }