# /**
#  * Copyright (c) 2002-2008 IBM Corporation 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: 
#  *   IBM - Initial API and implementation
#  */

# NLS_MESSAGEFORMAT_VAR

pluginName = EMF Annotated Java Importer
providerName = Eclipse Modeling Project

_UI_JavaImporter_label = Annotated Java
_UI_JavaImporter_description = Create the Ecore model based on annotated Java interfaces

_UI_JavaImport_title = Annotated Java Import
_UI_ProblemsEncounteredProcessingJava_message = Problems were encountered processing the Java source.
_UI_JavaProjectRequired_message = This importer requires the genmodel to be created in a Java project.
_UI_PackageSelection_description = Specify which packages to generate

_UI_InvalidLiteralNameForField = Invalid literal name ''{0}'' for field ''{1}'' will be discarded
_UI_InvalidLiteralValueForField = Invalid literal value ''{0}'' for field ''{1}'' will be discarded
_UI_ValueOfPropertyIsBad_message = Invalid value ''{0}'' of property ''{1}'' of ''{2}'' will be discarded

_UI_NoModelElementsInJava_message = No model elements were found in Java source: check for '@model' on interfaces and classes
_UI_NoModelElements_message = No Java source was found
