/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui;

import org.eclipse.ui.IActionFilter;


/**
 * Describes the public attributes for a marker and the acceptable values
 * each may have.  
 * <p>
 * A popup menu extension may use these constants to describe its object target.  
 * Each identifies an attribute name or possible value.  
 * <p>
 * Clients are not expected to implement this interface.
 * </p>
 *
 * @see IActionFilter
 */
public interface IMarkerActionFilter extends IActionFilter {
	/**
	 * An attribute indicating the marker type (value <code>"type"</code>).  
	 * The attribute value in xml should match one of the marker types defined in 
	 * the workbench's marker extension point.  Common examples are 
	 * <code>IMarker.TASK, IMarker.BOOKMARK, and IMarker.MARKER</code>.
	 */
	public static final String TYPE = "type"; //$NON-NLS-1$
	
	/**
	 * An attribute indicating the marker super type (value <code>"superType"</code>).  
	 * The attribute value in xml should match one of the marker types defined in 
	 * the workbench's marker extension point.  Common examples are 
	 * <code>IMarker.TASK, IMarker.BOOKMARK, and IMarker.MARKER</code>.
	 */
	public static final String SUPER_TYPE = "superType"; //$NON-NLS-1$
	
	/**
	 * An attribute indicating the marker priority (value <code>"priority"</code>).
	 * The attribute value in xml must be one of <code>IMarker.PRIORITY_LOW, 
	 * IMarker.PRIORITY_NORMAL, or IMarker.PRIORITY_HIGH</code> 
	 */
	public static final String PRIORITY = "priority"; //$NON-NLS-1$

	/**
	 * An attribute indicating the marker severity (value <code>"severity"</code>).  
	 * The attribute value in xml in xml must be one of <code>IMarker.SEVERITY_ERROR, 
	 * IMarker.SEVERITY_WARNING, or IMarker.SEVERITY_INFO</code> 
	 */
	public static final String SEVERITY = "severity"; //$NON-NLS-1$
	
	/**
	 * An attribute indicating whether the marker is considered done (value 
	 * <code>"done"</code>).
	 * The attribute value in xml must be one of <code>"true" or "false"</code>.
	 */
	public static final String DONE = "done"; //$NON-NLS-1$

	/**
	 * An attribute indicating the marker message (value <code>"message"</code>).
	 * The attribute value in xml is unconstrained. "*" may be used at the start or
	 * the end to represent "one or more characters".
	 */
	public static final String MESSAGE = "message"; //$NON-NLS-1$
	
	/**
	 * An attribute indicating the type of resource associated with the marker
	 * (value <code>"resourceType"</code>). The attribute value in xml must be
	 * one of <code>IResource.FILE, IResource.PROJECT, IResource.FOLDER,
	 * or IResource.ROOT</code>.
	 */
	public static final String RESOURCE_TYPE = "resourceType"; //$NON-NLS-1$

}
