# /**
#  * <copyright>
#  *
#  * 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 v1.0
#  * which accompanies this distribution, and is available at
#  * http://www.eclipse.org/legal/epl-v10.html
#  *
#  * Contributors:
#  *   IBM - Initial API and implementation
#  *
#  * </copyright>
#  *
#  * $Id: plugin.properties,v 1.8 2009/04/07 18:58:35 davidms Exp $
#  */

# NLS_MESSAGEFORMAT_VAR

pluginName = EMF Java Edit Example
providerName = Eclipse Modeling Project


_UI_CreateChild_text = {0}
_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.

_UI_JClass_type = JClass
_UI_JCompilationUnit_type = JCompilation Unit
_UI_JField_type = JField
_UI_JInitializer_type = JInitializer
_UI_JMember_type = JMember
_UI_JMethod_type = JMethod
_UI_JModelElement_type = JModel Element
_UI_JPackage_type = JPackage
_UI_JParameter_type = JParameter
_UI_Unknown_type = Object

_UI_JClass_abstract_feature = Abstract
_UI_JClass_final_feature = Final
_UI_JClass_interface_feature = Interface
_UI_JClass_throwable_feature = Throwable
_UI_JClass_javaClass_feature = Java Class
_UI_JClass_fields_feature = Fields
_UI_JClass_methods_feature = Methods
_UI_JClass_superTypes_feature = Super Types
_UI_JClass_allSuperTypes_feature = All Super Types
_UI_JClass_members_feature = Members
_UI_JClass_componentType_feature = Component Type
_UI_JClass_unit_feature = Unit
_UI_JClass_allMethods_feature = All Methods
_UI_JClass_allFields_feature = All Fields
_UI_JClass_package_feature = Package
_UI_JCompilationUnit_imports_feature = Imports
_UI_JCompilationUnit_comment_feature = Comment
_UI_JCompilationUnit_types_feature = Types
_UI_JCompilationUnit_importedPackages_feature = Imported Packages
_UI_JCompilationUnit_importedTypes_feature = Imported Types
_UI_JCompilationUnit_package_feature = Package
_UI_JField_final_feature = Final
_UI_JField_transient_feature = Transient
_UI_JField_volatile_feature = Volatile
_UI_JField_javaField_feature = Java Field
_UI_JField_initializer_feature = Initializer
_UI_JField_type_feature = Type
_UI_JInitializer_body_feature = Body
_UI_JMember_static_feature = Static
_UI_JMember_visibility_feature = Visibility
_UI_JMember_comment_feature = Comment
_UI_JMember_containingType_feature = Containing Type
_UI_JMethod_abstract_feature = Abstract
_UI_JMethod_final_feature = Final
_UI_JMethod_native_feature = Native
_UI_JMethod_synchronized_feature = Synchronized
_UI_JMethod_javaMethod_feature = Java Method
_UI_JMethod_constructor_feature = Constructor
_UI_JMethod_javaConstructor_feature = Java Constructor
_UI_JMethod_body_feature = Body
_UI_JMethod_parameters_feature = Parameters
_UI_JMethod_exceptions_feature = Exceptions
_UI_JMethod_returnType_feature = Return Type
_UI_JModelElement_name_feature = Name
_UI_JModelElement_jNode_feature = JNode
_UI_JPackage_javaPackage_feature = Java Package
_UI_JPackage_types_feature = Types
_UI_JParameter_final_feature = Final
_UI_JParameter_method_feature = Method
_UI_JParameter_type_feature = Type
_UI_Unknown_feature = Unspecified

_UI_JClass_abstract_description = The abstract of the jclass
_UI_JClass_final_description = The final of the jclass
_UI_JClass_interface_description = The interface of the jclass
_UI_JClass_throwable_description = The throwable of the jclass
_UI_JClass_javaClass_description = The java class of the jclass
_UI_JClass_fields_description = The fields of the jclass
_UI_JClass_methods_description = The methods of the jclass
_UI_JClass_superTypes_description = The super types of the jclass
_UI_JClass_allSuperTypes_description = The all super types of the jclass
_UI_JClass_members_description = The members of the jclass
_UI_JClass_componentType_description = The component type of the jclass
_UI_JClass_unit_description = The unit of the jclass
_UI_JClass_allMethods_description = The all methods of the jclass
_UI_JClass_allFields_description = The all fields of the jclass
_UI_JClass_package_description = The package of the jclass
_UI_JCompilationUnit_imports_description = The imports of the jcompilation unit
_UI_JCompilationUnit_comment_description = The comment of the jcompilation unit
_UI_JCompilationUnit_types_description = The types of the jcompilation unit
_UI_JCompilationUnit_importedPackages_description = The imported packages of the jcompilation unit
_UI_JCompilationUnit_importedTypes_description = The imported types of the jcompilation unit
_UI_JCompilationUnit_package_description = The package of the jcompilation unit
_UI_JField_final_description = The final of the jfield
_UI_JField_transient_description = The transient of the jfield
_UI_JField_volatile_description = The volatile of the jfield
_UI_JField_javaField_description = The java field of the jfield
_UI_JField_initializer_description = The initializer of the jfield
_UI_JField_type_description = The type of the jfield
_UI_JInitializer_body_description = The body of the jinitializer
_UI_JMember_static_description = The static of the jmember
_UI_JMember_visibility_description = The visibility of the jmember
_UI_JMember_comment_description = The comment of the jmember
_UI_JMember_containingType_description = The containing type of the jmember
_UI_JMethod_abstract_description = The abstract of the jmethod
_UI_JMethod_final_description = The final of the jmethod
_UI_JMethod_native_description = The native of the jmethod
_UI_JMethod_synchronized_description = The synchronized of the jmethod
_UI_JMethod_javaMethod_description = The java method of the jmethod
_UI_JMethod_constructor_description = The constructor of the jmethod
_UI_JMethod_javaConstructor_description = The java constructor of the jmethod
_UI_JMethod_body_description = The body of the jmethod
_UI_JMethod_parameters_description = The parameters of the jmethod
_UI_JMethod_exceptions_description = The exceptions of the jmethod
_UI_JMethod_returnType_description = The return type of the jmethod
_UI_JModelElement_name_description = The name of the jmodel element
_UI_JModelElement_jNode_description = The jnode of the jmodel element
_UI_JPackage_javaPackage_description = The java package of the jpackage
_UI_JPackage_types_description = The types of the jpackage
_UI_JParameter_final_description = The final of the jparameter
_UI_JParameter_method_description = The method of the jparameter
_UI_JParameter_type_description = The type of the jparameter
_UI_PropertyDescriptor_description = The {0} of the {1}

_UI_JClass_allTypes_feature = All Types
_UI_JClass_types_feature = Types
_UI_JClass_arrayType_feature = Array Type
_UI_JVisibility_package_literal = package
_UI_JVisibility_protected_literal = protected
_UI_JVisibility_public_literal = public
_UI_JVisibility_private_literal = private
_UI_Unknown_datatype= Value
