/**
 *  * Copyright (c) 2006-2010 Istvan Rath and Daniel Varro
 *  * All rights reserved. This program and the accompanying materials
 *  * are made available under the terms of the Eclipse Public License v1.0
 *  * which accompanies this distribution, and is available at
 *  * http://www.eclipse.org/legal/epl-v10.html
 *  *
 *  * Contributors:
 *  *    Istvan Rath, Daniel Varro - initial API and implementation
 * 
 */
package org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.simpleRules;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Fail Rule</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.simpleRules.SimpleRulesPackage#getFailRule()
 * @model
 * @generated
 */
public interface FailRule extends ASMRuleInvocation
{
  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String copyright = " * Copyright (c) 2006-2010 Istvan Rath and Daniel Varro\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors:\r\n *    Istvan Rath, Daniel Varro - initial API and implementation\r\n";

} // FailRule
