public String[] read(long unique) { try { while (true) { String line = reader.readLine(); if (line == null) return null; if (line.trim().length() == 0) continue; String[] result = parser.parse(line); if (result.length == 0) continue; // resolve any global variable references for (int rx = 0; rx < result.length; rx++) { String val = result[rx]; if (val.endsWith("}") && (val.startsWith("{") || val.startsWith("${"))) { // Object resolved = globals.get(val.replaceAll("\\$|\\{|\\}", "")); Object resolved = ValueGenerator.resolveValue(val, globals); result[rx] = (resolved != null ? resolved.toString() : ""); // Logger.getLogger("readValue").info(String.format("resolved var %s -> %s", val, // result[rx])); } } return result; } } catch (Exception e) { Logger.getLogger("FileFormatter.read").info("Error reading line: " + e.toString()); e.printStackTrace(); return null; } }