/*******************************************************************************
 * Copyright (c) 2009, 2014 Xored Software Inc 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:
 *     Xored Software Inc - initial API and implementation and/or initial documentation
 *******************************************************************************/
package org.eclipse.rcptt.tesla.ecl.model;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Get Section</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.rcptt.tesla.ecl.model.TeslaPackage#getGetSection()
 * @model annotation="http://www.eclipse.org/ecl/docs description='Gets section with defined parameter. If this section doesn\'t exist, then error is returned.' returns='section' recorded='true' example='get-editor CheckSetCommand |  get-section Contexts | key-type \"M1+s\"'"
 * @generated
 */
public interface GetSection extends TextSelector {
} // GetSection
