/*******************************************************************************
 *  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.BroaderBusinessPolicyIncludesMoreSpecificBusinessPolicy;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Broader Business Policy Includes More Specific Business Policy</b></em>'.
 * <!-- end-user-doc -->
 *
 * @generated
 */
public class BroaderBusinessPolicyIncludesMoreSpecificBusinessPolicyImpl extends MotivationEdgeImpl implements BroaderBusinessPolicyIncludesMoreSpecificBusinessPolicy {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BroaderBusinessPolicyIncludesMoreSpecificBusinessPolicyImpl() {
		super();
	}

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

} //BroaderBusinessPolicyIncludesMoreSpecificBusinessPolicyImpl
