/*******************************************************************************
* Copyright (c) 2004, 2006
* Thomas Hallgren, Kenneth Olwing, Mitch Sonies
* Pontus Rydin, Nils Unden, Peer Torngren
* The code, documentation and other materials contained herein have been
* licensed under the Eclipse Public License - v 1.0 by the individual
* copyright holders listed above, as Initial Contributors under such license.
* The text of such license is available at www.eclipse.org.
*******************************************************************************/
package org.eclipse.buckminster.core.query.model;
/**
* The MutableLevel is used when choosing the {@link IProvider} that will be the
* best fit for a component requirement.
*
* @author Thomas Hallgren
*/
public enum MutableLevel {
/**
* Don't care if the provider is mutable or not.
*/
INDIFFERENT,
/**
* Reject a mutable provider. This is used when the found component must be
* stable.
*/
REJECT,
/**
* A mutable provider will score higher than an immutable provider. Both are
* ok.
*/
DESIRE,
/**
* A mutable provider will score higher than an immutable provider. Both are
* ok.
*/
AVOID,
/**
* Reject an immutable provider. Typically used when the intention is to
* modify source.
*/
REQUIRE
}