*/
public void updateMarkers(IDocument document) throws CoreException {
Assert.isTrue(fDocument == document);
IAnnotationMap annotationMap= getAnnotationMap();
if (annotationMap.size() == 0 && fDeletedAnnotations.size() == 0)
return;
if (fMarkerUpdaterSpecifications == null)
installMarkerUpdaters();
listenToMarkerChanges(false);
try {
// update all markers with the positions known by the annotation model
for (Iterator e= getAnnotationIterator(false); e.hasNext();) {
Object o= e.next();
if (o instanceof MarkerAnnotation) {
MarkerAnnotation a= (MarkerAnnotation) o;
IMarker marker= a.getMarker();
Position position= (Position) annotationMap.get(a);
if ( !updateMarker(marker, document, position)) {
if ( !fDeletedAnnotations.contains(a))
fDeletedAnnotations.add(a);
}
}