/*******************************************************************************
 *  Copyright (c) 2017 CEA LIST.
 *
 *  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
