/*******************************************************************************
 * Copyright (c) 2009, 2011 IBM Corporation and others.
 * 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.mdht.uml.cda;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Registry Delegate</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.mdht.uml.cda.CDAPackage#getRegistryDelegate()
 * @model interface="true" abstract="true"
 * @generated
 */
public interface RegistryDelegate extends EObject {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model required="true" ordered="false" templateIdDataType="org.eclipse.uml2.types.String" templateIdRequired="true" templateIdOrdered="false" contextRequired="true" contextOrdered="false"
	 * @generated
	 */
	EClass getEClass(String templateId, Object context);

} // RegistryDelegate
