/**
 * <copyright>
 * </copyright>
 *
 * $Id: EntryOperation.java,v 1.1 2008/09/02 20:36:00 radvorak Exp $
 */
package org.eclipse.m2m.qvt.oml.emof.QVTOperational;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Entry Operation</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.m2m.qvt.oml.emof.QVTOperational.QVTOperationalPackage#getEntryOperation()
 * @model
 * @generated
 */
public interface EntryOperation extends ImperativeOperation {
} // EntryOperation
