private static Map<String, BootstrapPackage> getPackagesMap(Database database) { Map<String, BootstrapPackage> packagesByName = new TreeMap<String, BootstrapPackage>(); // First create the _init package for the whole database BootstrapPackage initPkg = new BootstrapPackage(); initPkg.setName(INIT_NAME); initPkg.setIsInit(true); packagesByName.put(INIT_NAME, initPkg); for (ObjectType type : database.getEnvironment().getTypes()) { TypeData bmod = type.as(TypeData.class); for (String name : bmod.getPackageNames()) { BootstrapPackage pkg = packagesByName.get(name); if (pkg == null) { pkg = new BootstrapPackage(); pkg.setName(name); packagesByName.put(name, pkg); } pkg.getTypes().add(type); } } for (BootstrapPackage pkg : Query.from(BootstrapPackage.class).using(database).selectAll()) { packagesByName.put(pkg.getName(), pkg); } for (Map.Entry<String, BootstrapPackage> entry : packagesByName.entrySet()) { checkConsistency( database, entry.getValue(), new HashSet<BootstrapPackage>(packagesByName.values()), null); } return packagesByName; }