void removeElement(Object versionId) { Element toRemove = (Element) this.available.remove(versionId); if (toRemove == null) return; this.markNeedingUpdate(DependencySystem.SATISFACTION); Dependency[] dependencies = toRemove.getDependencies(); for (int i = 0; i < dependencies.length; i++) removeRequired(dependencies[i].getRequiredObjectId());  if (toRemove.isSingleton()) this.singletonsCount--; int change = ElementChange.REMOVED;   system.recordElementStatusChanged(toRemove, change);
void removeElement(Element element) { removeElement(element.getVersionId());
	void removeElement(Object versionId) {		Element toRemove = (Element) this.available.remove(versionId);		if (toRemove == null)			return;		this.markNeedingUpdate(DependencySystem.SATISFACTION);		Dependency[] dependencies = toRemove.getDependencies();		for (int i = 0; i < dependencies.length; i++)			removeRequired(dependencies[i].getRequiredObjectId());		// if does not allow concurrency, decrement preventingConcurrencyCount					if (toRemove.isSingleton())			this.singletonsCount--;		int change = ElementChange.REMOVED;		//		if (resolved.contains(toRemove))		//			change |= ElementChange.UNRESOLVED;		system.recordElementStatusChanged(toRemove, change);	}