}
}
public void rebuildDependencies(IProgressMonitor monitor) throws CoreException
{
SubMonitor progress = SubMonitor.convert(monitor, 1000);
HashSet<ICapabilityModelElement> changes = new HashSet<ICapabilityModelElement>(
lastCaps);
LinkedList<IRequirementModelElement> reqs = new LinkedList<IRequirementModelElement>();
LinkedList<ICapabilityModelElement> caps = new LinkedList<ICapabilityModelElement>();
checkChanges(progress.newChild(100), reqs, caps);
boolean reqsChanged;
boolean capsChanged;
synchronized (this)
{
reqsChanged = isRequirementsChanged(reqs);
capsChanged = isCapabilitiesChanged(caps);
}
if (reqsChanged)
{
processRequirementsChanges(progress.newChild(600));
SigilCore.rebuild(this, progress.newChild(50));
}
progress.setWorkRemaining(250);
if (capsChanged)
{
changes.addAll(caps);
SigilCore.rebuildBundleDependencies(this, changes, progress.newChild(250));
}
}