MCPcopy Index your code
hub / github.com/apache/groovy / writeConfig

Method writeConfig

src/main/java/groovy/util/ConfigObject.java:220–279  ·  view source on GitHub ↗
(String prefix, ConfigObject map, BufferedWriter out, int tab, boolean apply)

Source from the content-addressed store, hash-verified

218 }
219
220 private void writeConfig(String prefix, ConfigObject map, BufferedWriter out, int tab, boolean apply) throws IOException {
221 String space = apply ? StringGroovyMethods.multiply(TAB_CHARACTER, tab) : "";
222
223 for (Object o1 : map.keySet()) {
224 String key = (String) o1;
225 Object v = map.get(key);
226
227 if (v instanceof ConfigObject value) {
228
229 if (!value.isEmpty()) {
230
231 Object dotsInKeys = null;
232 for (Object o : value.entrySet()) {
233 Entry e = (Entry) o;
234 String k = (String) e.getKey();
235 if (k.indexOf('.') > -1) {
236 dotsInKeys = e;
237 break;
238 }
239 }
240
241 int configSize = value.size();
242 Object firstKey = value.keySet().iterator().next();
243 Object firstValue = value.values().iterator().next();
244
245 int firstSize;
246 if (firstValue instanceof ConfigObject) {
247 firstSize = ((ConfigObject) firstValue).size();
248 } else {
249 firstSize = 1;
250 }
251
252 if (configSize == 1 || DefaultGroovyMethods.asBoolean(dotsInKeys)) {
253 if (firstSize == 1 && firstValue instanceof ConfigObject) {
254 key = KEYWORDS.contains(key) ? FormatHelper.inspect(key) : key;
255 String writePrefix = prefix + key + "." + firstKey + ".";
256 writeConfig(writePrefix, (ConfigObject) firstValue, out, tab, true);
257 } else if (!DefaultGroovyMethods.asBoolean(dotsInKeys) && firstValue instanceof ConfigObject) {
258 writeNode(key, space, tab, value, out);
259 } else {
260 for (Object j : value.keySet()) {
261 Object v2 = value.get(j);
262 Object k2 = ((String) j).indexOf('.') > -1 ? FormatHelper.inspect(j) : j;
263 if (v2 instanceof ConfigObject) {
264 key = KEYWORDS.contains(key) ? FormatHelper.inspect(key) : key;
265 writeConfig(prefix + key, (ConfigObject) v2, out, tab, false);
266 } else {
267 writeValue(key + "." + k2, space, prefix, v2, out);
268 }
269 }
270 }
271 } else {
272 writeNode(key, space, tab, value, out);
273 }
274 }
275 } else {
276 writeValue(key, space, prefix, v, out);
277 }

Callers 2

writeToMethod · 0.95
writeNodeMethod · 0.95

Calls 15

multiplyMethod · 0.95
getKeyMethod · 0.95
asBooleanMethod · 0.95
inspectMethod · 0.95
writeNodeMethod · 0.95
writeValueMethod · 0.95
getMethod · 0.65
sizeMethod · 0.65
iteratorMethod · 0.65
valuesMethod · 0.65
keySetMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected