/**
 * Copyright (c) 2012 Obeo.
 * 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:
 *     Obeo - initial API and implementation
 */
package org.eclipse.emf.compare.uml2.internal;

/**
 * <!-- begin-user-doc --> A representation of the model object '<em><b>Association Change</b></em>'. <!--
 * end-user-doc -->
 *
 *
 * @see org.eclipse.emf.compare.uml2.internal.UMLComparePackage#getAssociationChange()
 * @model
 * @generated
 */
public interface AssociationChange extends UMLDiff {
} // AssociationChange
