/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.eclipse.gmf.mappings;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Constraint</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * Boolean type value expression which is to be evaluated in a context
 * <!-- end-model-doc -->
 *
 *
 * @see org.eclipse.gmf.mappings.GMFMapPackage#getConstraint()
 * @model annotation="http://www.eclipse.org/gmf/2005/constraints/meta def='Constraint'"
 * @generated
 */
public interface Constraint extends ValueExpression{
} // Constraint
