@SuppressWarnings("unchecked") private List<Object> processList(List<Object> unprocessed) throws IOException { List<Object> processed = new ArrayList<>(unprocessed.size()); for (Object o : unprocessed) { Object processObject = processObject(o); if (processObject instanceof List) { processed.addAll((List<Object>) processObject); } else { processed.add(processObject); } } return processed; }
@SuppressWarnings("unchecked") private List<Object> processList(List<Object> unprocessed) throws IOException { List<Object> processed = new ArrayList<>(unprocessed.size()); for (Object o : unprocessed) { Object processObject = processObject(o); if (processObject instanceof List) { processed.addAll((List<Object>) processObject); } else { processed.add(processObject); } } return processed; }
@Override public Object dataTree() throws IOException { return processObject(yaml.dataTree()); }
@Override public Object dataTree() throws IOException { return processObject(yaml.dataTree()); }
@SuppressWarnings({"unchecked"}) private Object processMap(Map<String, Object> unprocessed) throws IOException { Map<String, Object> processed = new LinkedHashMap<>(unprocessed.size()); for (Entry<String, Object> e : unprocessed.entrySet()) { String key = e.getKey(); Object value = e.getValue(); if (INCLUDE.equals(key)) { if (value instanceof String) { return mapping.apply((String) value).dataTree(); } else if (value instanceof List) { return getIncludedList((List<String>) value); } else { throw new IllegalArgumentException("include must be a string or list of strings"); } } else { processed.put(key, processObject(value)); } } return processed; }
@SuppressWarnings({"unchecked"}) private Object processMap(Map<String, Object> unprocessed) throws IOException { Map<String, Object> processed = new LinkedHashMap<>(unprocessed.size()); for (Entry<String, Object> e : unprocessed.entrySet()) { String key = e.getKey(); Object value = e.getValue(); if (INCLUDE.equals(key)) { if (value instanceof String) { Object includedTree = mapping.apply((String) value).dataTree(); if (includedTree instanceof Map) { Map<String, Object> includedMap = (Map<String, Object>) includedTree; includedMap.forEach((k, v) -> processed.put(k, v)); } else { return includedTree; } } else if (value instanceof List) { return getIncludedList((List<String>) value); } else { throw new IllegalArgumentException("include must be a string or list of strings"); } } else { processed.put(key, processObject(value)); } } return processed; }