/**
 *  Copyright (c) 2015 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 and/or initial documentation
 *     ...
 * 
 */
package org.eclipse.intent.mapping.ide;

import org.eclipse.intent.mapping.ide.resource.IFileLocation;

/**
 * <!-- begin-user-doc --> A representation of the model object '<em><b>File Location</b></em>'. <!--
 * end-user-doc -->
 *
 * @see org.eclipse.intent.mapping.ide.IdePackage#getFileLocation()
 * @model
 * @generated NOT
 */
public interface FileLocation extends ResourceLocation, IFileLocation {
} // FileLocation
