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/CachedMarkerBuilder.java
Arrays.sort(newMarkers.toArray(), getComparator());
		monitor.worked(50);
		if (newMarkers.getSize() == 0) {
			categories = EMPTY_CATEGORY_ARRAY;
			currentMap = newMarkers;
			monitor.done();
			return;
		}
		monitor.subTask(MarkerMessages.MarkerView_queueing_updates);
		if (monitor.isCanceled())
			return;
		if (isShowingHierarchy()) {
			MarkerCategory[] newCategories = buildHierarchy(newMarkers, 0,
					newMarkers.getSize() - 1, 0);
			if (monitor.isCanceled())
				return;
			categories = newCategories;
		}
		monitor.worked(50);
		currentMap = newMarkers;
	}
	/**
	 * Add group to the enabled filters.
	 * 
	 * @param group
	 */
	void toggleFilter(MarkerFieldFilterGroup group) {
		Collection enabled = getEnabledFilters();
		if (enabled.remove(group))