/**
 * Copyright (c) 2010, 2019 Mia-Software and others.
 *    All rights reserved. This program and the accompanying materials
 *   are made available under the terms of the Eclipse Public License v2.0
 *   which accompanies this distribution, and is available at
 *   http://www.eclipse.org/legal/epl-v20.html
 *   
 *   Contributors:
 *   
 *   	   Nicolas Guyomar (Mia-Software) - initial API and implementation
 */
package org.eclipse.modisco.jee.jsp;

import org.eclipse.modisco.xml.Element;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>JSP Directive</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * Eg : &#60;jsp:directive.page import="java.util.*" /&#62;
 * <!-- end-model-doc -->
 *
 *
 * @see org.eclipse.modisco.jee.jsp.JspPackage#getJSPDirective()
 * @model
 * @generated
 */
public interface JSPDirective extends Element {
} // JSPDirective
