MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / readDocument

Method readDocument

src/main/java/fieldbox/io/IO.java:302–394  ·  view source on GitHub ↗
(String filename, Map<String, Box> specialBoxes, Set<Box> created)

Source from the content-addressed store, hash-verified

300 Log.log("io.general", () -> " reading document :" + f);
301
302 lastWasNew = false;
303
304 if (!f.exists()) {
305 // new file
306 lastWasNew = true;
307
308 Log.log("io.general", () -> " document doesn't exist ");
309
310 Document d = new Document();
311 d.externalList = new ArrayList<>();
312 d.knownFiles = new LinkedHashMap<>();
313 d.knownProperties = new LinkedHashSet<>();
314 return d;
315 }
316
317
318 String m = readFromFile(f);
319
320 Document d = (Document) new EDN().read(m);
321 Map<String, Box> loaded = new HashMap<String, Box>();
322
323 Log.log("io.general", () -> " document contains " + d.externalList.size() + " boxes ");
324
325
326 for (External e : d.externalList) {
327 fromExternal(e, specialBoxes);
328 if (e.box != null) {
329 loaded.put(e.id, e.box);
330 e.box.properties.put(id, e.id);
331 }
332 }
333
334 for (External e : d.externalList) {
335 for (String id : e.children) {
336 Box mc = specialBoxes.getOrDefault(id, loaded.get(id));
337
338 if (mc != null) e.box.connect(mc);
339 else
340 Log.log("io.error", () -> " lost child ? " + id + " of " + e.box + " " + specialBoxes);
341 }
342 for (String id : e.parents) {
343 Box mc = specialBoxes.getOrDefault(id, loaded.get(id));
344
345 if (mc != null) mc.connect(e.box);
346 else
347 Log.log("io.error", () -> " lost child ? " + id + " of " + e.box + " " + specialBoxes);
348 }
349 }
350 created.addAll(loaded.values());
351
352
353
354
355 LinkedHashSet<Box> failed = new LinkedHashSet<>();
356 loaded.values()
357 .stream()
358 .filter(b -> b instanceof Loaded)
359 .forEach(b -> {

Callers 2

doOpenMethod · 0.80
loadBoxesMethod · 0.80

Calls 15

filenameForMethod · 0.95
logMethod · 0.95
readFromFileMethod · 0.95
fromExternalMethod · 0.95
connectMethod · 0.95
loadMethod · 0.95
existsMethod · 0.80
removeAllMethod · 0.80
disconnectFromAllMethod · 0.80
readMethod · 0.65
getMethod · 0.65
loadedMethod · 0.65

Tested by

no test coverage detected