Bug 221337 [Markers] MarkerItem has too much API
We are exposing too much as API in MarkerItem. We should only provide getAtttributeValue and the methods that support PATH_ATTRIBUTE and NAME_ATTRIBUTE as they are tricky. Everything else needs to be pushed down to an internal class. We should mention the relevant IMarker constants for those removed.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerSeverityAndDescriptionField.java
if (severity1 == severity2)
			return super.compare(item1, item2);
		return severity2 - severity1;
	}
	/**
	 * Return the image for item.
	 * @param item
	 * @return Image or <code>null</code>
	 */
	private Image getImage(MarkerItem item) {
		int severity = -1;
		if (item.isConcrete())
			severity = getSeverity(item);
		else if (item instanceof MarkerCategory)
			severity = ((MarkerCategory) item).getHighestSeverity();
		if (severity >= IMarker.SEVERITY_WARNING)
			return MarkerSupportInternalUtilities.getSeverityImage(severity);
		return null;
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.ui.views.markers.MarkerField#update(org.eclipse.jface.viewers.ViewerCell)
	 */
	public void update(ViewerCell cell) {
		super.update(cell);
		MarkerItem item = (MarkerItem) cell.getElement();
		cell.setImage(annotateImage(item, getImage(item)));
	}
}