private void askPluginSettings(TransferSettings settings, TransferPluginOption option, Map<String, String> knownPluginSettings, String nestPrefix)
throws IllegalAccessException, InstantiationException, StorageException, IllegalArgumentException, InvocationTargetException,
NoSuchMethodException, SecurityException {
if (option instanceof NestedTransferPluginOption) {
Class<?> childPluginTransferSettingsClass = ReflectionUtil.getClassFromType(option.getType());
boolean isGenericChildPlugin = TransferSettings.class.equals(childPluginTransferSettingsClass);
if (isGenericChildPlugin) {
askGenericChildPluginSettings(settings, option, knownPluginSettings, nestPrefix);
}
else {
askConreteChildPluginSettings(settings, (NestedTransferPluginOption) option, knownPluginSettings, nestPrefix);
}
}
else {
askNormalPluginSettings(settings, option, knownPluginSettings, nestPrefix);
}
}