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

import org.eclipse.intent.mapping.emf.ICDOTextResourceLocation;

/**
 * <!-- begin-user-doc --> A representation of the model object '<em><b>CDO Text Resource Location</b></em>'.
 * <!-- end-user-doc -->
 *
 * @see org.eclipse.intent.mapping.MappingPackage#getCDOTextResourceLocation()
 * @model
 * @generated NOT
 */
public interface CDOTextResourceLocation extends CDOFileLocation, TextContainer, ICDOTextResourceLocation {
} // CDOTextResourceLocation
