private static String getKeyDataFromDataKeyOrFileKey(ConfigBag config, ConfigKey<String> dataKey, ConfigKey<String> fileKey) { boolean unused = config.isUnused(dataKey); String data = config.get(dataKey); if (Strings.isNonBlank(data) && !unused) { return data.trim(); } String file = config.get(fileKey); if (groovyTruth(file)) { List<String> files = Arrays.asList(file.split(File.pathSeparator)); List<String> filesTidied = tidyFilePaths(files); String fileData = getFileContents(filesTidied); if (fileData == null) { log.warn("Invalid file" + (files.size() > 1 ? "s" : "") + " for " + fileKey + " (given " + files + (files.equals(filesTidied) ? "" : "; converted to " + filesTidied) + ") " + "may fail provisioning " + config.getDescription()); } else if (groovyTruth(data)) { if (!fileData.trim().equals(data.trim())) log.warn(dataKey.getName()+" and "+fileKey.getName()+" both specified; preferring the former"); } else { data = fileData; config.put(dataKey, data); config.get(dataKey); } } return data; }