/**
 *   Copyright (c) 2010 Mia-Software.
 *   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:
 *   
 *       Nicolas Guyomar (Mia-Software) - initial API and implementation
 */
package org.eclipse.modisco.jee.webapp.webapp25;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Non Empty String Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * 
 * 	This type defines a string which contains at least one
 * 	character.
 *       
 * <!-- end-model-doc -->
 *
 *
 * @see org.eclipse.modisco.jee.webapp.webapp25.Webapp25Package#getNonEmptyStringType()
 * @model extendedMetaData="name='nonEmptyStringType' kind='simple'"
 * @generated
 */
public interface NonEmptyStringType extends org.eclipse.modisco.jee.webapp.webapp25.String {
} // NonEmptyStringType
