@Override public ModuleInternalTransactionalInfo destroyModule(ModuleIdentifier moduleIdentifier) { transactionStatus.checkNotCommitted(); ModuleInternalTransactionalInfo found = modulesHolder.destroyModule(moduleIdentifier); moduleIdentifiersToDependencyResolverMap.remove(moduleIdentifier); return found; }
/** Get all dependency resolvers, including those that belong to destroyed things? */ private List<DependencyResolverImpl> getAllSorted() { transactionStatus.checkCommitted(); List<DependencyResolverImpl> sorted = new ArrayList<>(moduleIdentifiersToDependencyResolverMap.values()); for (DependencyResolverImpl dri : sorted) { dri.countMaxDependencyDepth(this); } Collections.sort(sorted); return sorted; }
public synchronized DependencyResolverImpl getOrCreate(ModuleIdentifier name) { DependencyResolverImpl dependencyResolver = moduleIdentifiersToDependencyResolverMap.get(name); if (dependencyResolver == null) { transactionStatus.checkNotCommitted(); dependencyResolver = new DependencyResolverImpl(name, transactionStatus, modulesHolder, readableRegistry); moduleIdentifiersToDependencyResolverMap.put(name, dependencyResolver); } return dependencyResolver; }
// protect write access @Override public void put(ModuleInternalTransactionalInfo moduleInternalTransactionalInfo) { transactionStatus.checkNotCommitted(); modulesHolder.put(moduleInternalTransactionalInfo); }