/*******************************************************************************
 *   Copyright (c) 2017 CEA LIST and others.
 *  
 *   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:
 *  	CEA LIST - Initial API and implementation
 *******************************************************************************/
/**
 */
package org.eclipse.papyrus.bmm.BMMProfile.impl;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.papyrus.bmm.BMMProfile.BmmPackage;
import org.eclipse.papyrus.bmm.BMMProfile.TacticEffectsEnforcementLevelOfBusinessRule;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Tactic Effects Enforcement Level Of Business Rule</b></em>'.
 * <!-- end-user-doc -->
 *
 * @generated
 */
public class TacticEffectsEnforcementLevelOfBusinessRuleImpl extends MotivationEdgeImpl implements TacticEffectsEnforcementLevelOfBusinessRule {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TacticEffectsEnforcementLevelOfBusinessRuleImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return BmmPackage.Literals.TACTIC_EFFECTS_ENFORCEMENT_LEVEL_OF_BUSINESS_RULE;
	}

} //TacticEffectsEnforcementLevelOfBusinessRuleImpl
