###############################################################################
# Copyright (c) 2009 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:
#    Gregoire DUPE (Mia-Software) - initial API and implementation
###############################################################################
pluginName = MoDisco Query Edit Support (Deprecated, has to be replaced by EMF Facet) (Incubation)
providerName = Eclipse Modeling Project

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_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_PropertyDescriptor_description = The {0} of the {1}

_UI_ModelQuerySet_type = Model Query Set
_UI_ModelQuery_type = Model Query
_UI_JavaModelQuery_type = Java Model Query
_UI_ModelQueryParameter_type = Model Query Parameter
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_ModelQuerySet_associatedMetamodels_feature = Associated Metamodels
_UI_ModelQuerySet_name_feature = Name
_UI_ModelQuerySet_isEditable_feature = Is Editable
_UI_ModelQuerySet_description_feature = Description
_UI_ModelQuerySet_queries_feature = Queries
_UI_ModelQuery_name_feature = Name
_UI_ModelQuery_description_feature = Description
_UI_ModelQuery_returnType_feature = Return Type
_UI_ModelQuery_scope_feature = Scope
_UI_ModelQuery_modelQuerySet_feature = Model Query Set
_UI_ModelQuery_parameters_feature = Parameters
_UI_JavaModelQuery_implementationClassName_feature = Implementation Class Name
_UI_ModelQueryParameter_name_feature = Name
_UI_ModelQueryParameter_type_feature = Type
_UI_Unknown_feature = Unspecified

_UI_OCLModelQuert_type = OCL Model Quert
_UI_EClass0_type = EClass0
_UI_ModelQueryContext_type = Model Query Context
_UI_ModelQueryParameterValue_type = Model Query Parameter Value
_UI_ModelQueryResult_type = Model Query Result
_UI_OCLModelQuert_query_feature = Query
_UI_ModelQueryContext_selectedModelElement_feature = Selected Model Element
_UI_ModelQueryContext_selectedModels_feature = Selected Models
_UI_ModelQueryParameterValue_parameter_feature = Parameter
_UI_ModelQueryParameterValue_value_feature = Value
_UI_ModelQueryResult_source_feature = Source
_UI_ModelQueryResult_value_feature = Value
_UI_OCLModelQuery_type = OCL Model Query
_UI_OCLModelQuery_query_feature = Query
_UI_ModelQueryResult_exception_feature = Exception
_UI_ModelQuery_isExternalContextDependent_feature = Is External Context Dependent
_UI_ModelQuery_upperBound_feature = Upper Bound
_UI_ModelQuery_lowerBound_feature = Lower Bound
_UI_ModelQueryContext_selectedModelElements_feature = Selected Model Elements
_UI_ModelQueryParameter_upperBound_feature = Upper Bound
_UI_ModelQueryParameter_lowerBound_feature = Lower Bound
