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/MarkerCategory.java
private int severity = -1;
	/**
	 * Create a new instance of the receiver that has the markers between
	 * startIndex and endIndex showing.
	 * 
	 * @param cachedMarkerBuilder
	 * @param startIndex
	 * @param endIndex
	 *            the builder used to generate the children lazily.
	 */
	MarkerCategory(CachedMarkerBuilder cachedMarkerBuilder, int startIndex,
			int endIndex, String categoryName) {
		this.cachedMarkerBuilder = cachedMarkerBuilder;
		start = startIndex;
		end = endIndex;
		name = categoryName;
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.ui.views.markers.internal.MarkerNode#getChildren()
	 */
	public MarkerItem[] getChildren() {
		if (children == null) {
			
			
			if (this.cachedMarkerBuilder.isBuilding()) {
				return MarkerSupportInternalUtilities.EMPTY_MARKER_ITEM_ARRAY;
			}
			MarkerItem[] allMarkers = cachedMarkerBuilder.getMarkerEntries();