List<String> containerIds = dataStore.get().getContainers();
for (String containerId : containerIds) {
String parentId = dataStore.get().getContainerParent(containerId);
if (parentId.isEmpty()) {
if (!containers.containsKey(containerId)) {
Container container = new ContainerImpl(null, containerId, this);
containers.put(containerId, container);
}
} else {
Container parent = containers.get(parentId);
if (parent == null) {
parent = new ContainerImpl(null, parentId, this);
containers.put(parentId, parent);
}
Container container = new ContainerImpl(parent, containerId, this);
containers.put(containerId, container);
}
}
return containers.values().toArray(new Container[containers.size()]);
}