# Copyright (c) 2012, 2013 Eike Stepper (Loehne, Germany) 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:
#    Eike Stepper - initial API and implementation

pluginName = CDO Model Repository Security Edit Support
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_SecurityElement_type = Element
_UI_SecurityRealm_type = Realm
_UI_SecurityItem_type = Item
_UI_Container_type = Container
_UI_Role_type = Role
_UI_Assignee_type = Assignee
_UI_Group_type = Group
_UI_User_type = User
_UI_UserPassword_type = Password
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_SecurityRealm_items_feature = Items
_UI_SecurityRealm_name_feature = Name
_UI_Container_items_feature = Items
_UI_Container_name_feature = Name
_UI_Role_assignees_feature = Assignees
_UI_Role_id_feature = ID
_UI_Role_type_feature = Type
_UI_Assignee_roles_feature = Roles
_UI_Assignee_id_feature = ID
_UI_Group_users_feature = Users
_UI_User_groups_feature = Groups
_UI_User_firstName_feature = First Name
_UI_User_lastName_feature = Last Name
_UI_User_email_feature = E-Mail
_UI_User_locked_feature = Locked
_UI_User_password_feature = Password
_UI_UserPassword_encrypted_feature = Encrypted
_UI_Unknown_feature = Unspecified

_UI_Realm_type = Realm
_UI_Realm_items_feature = Items
_UI_Realm_name_feature = Name
_UI_Group_inheritedGroups_feature = Inherited Groups
_UI_Group_inheritingGroups_feature = Inheriting Groups
_UI_Directory_type = Directory
_UI_Directory_items_feature = Items
_UI_Directory_name_feature = Name
_UI_Group_allInheritedGroups_feature = All Inherited Groups
_UI_Group_allRoles_feature = All Roles
_UI_User_allGroups_feature = All Groups
_UI_User_allRoles_feature = All Roles
_UI_User_label_feature = Label
_UI_Group_allInheritingGroups_feature = All Inheriting Groups
_UI_Realm_allUsers_feature = All Users
_UI_Realm_allGroups_feature = All Groups
_UI_Realm_allRoles_feature = All Roles
_UI_User_unassignedRoles_feature = Unassigned Roles
_UI_Realm_defaultAccess_feature = Default Access
_UI_User_defaultAccessOverride_feature = Default Access Override
_UI_User_defaultAccess_feature = Default Access
_UI_Access_READ_literal = READ
_UI_Access_WRITE_literal = WRITE
_UI_Permission_type = Permission
_UI_ClassPermission_type = Class Permission
_UI_PackagePermission_type = Package Permission
_UI_ResourcePermission_type = Resource Permission
_UI_Realm_allPermissions_feature = All Permissions
_UI_Role_permissions_feature = Permissions
_UI_User_allPermissions_feature = All Permissions
_UI_Permission_role_feature = Role
_UI_Permission_access_feature = Access
_UI_ClassPermission_applicableClass_feature = Applicable Class
_UI_PackagePermission_applicablePackage_feature = Applicable Package
_UI_ResourcePermission_pattern_feature = Pattern
_UI_SecurityItemProvider_type = Item Provider
_UI_Realm_defaultUserDirectory_feature = Default User Directory
_UI_Realm_defaultGroupDirectory_feature = Default Group Directory
_UI_Realm_defaultRoleDirectory_feature = Default Role Directory
_UI_ObjectPermission_type = Object Permission
_UI_ExpressionPermission_type = Expression Permission
_UI_ExpressionPermission_expression_feature = Expression
_UI_LogicalPermission_type = Logical Permission
_UI_LogicalPermission_operator_feature = Operator
_UI_LogicalPermission_operands_feature = Operands
_UI_LogicalOperator_Not_literal = Not
_UI_LogicalOperator_And_literal = And
_UI_LogicalOperator_Or_literal = Or
_UI_FilterPermission_type = Filter Permission
_UI_PermissionFilter_type = Permission Filter
_UI_PackageFilter_type = Package Filter
_UI_ClassFilter_type = Class Filter
_UI_ResourceFilter_type = Resource Filter
_UI_ObjectFilter_type = Object Filter
_UI_ExpressionFilter_type = Expression Filter
_UI_CombinedFilter_type = Combined Filter
_UI_NotFilter_type = Not Filter
_UI_AndFilter_type = And Filter
_UI_OrFilter_type = Or Filter
_UI_FilterPermission_filter_feature = Filter
_UI_PackageFilter_applicablePackage_feature = Applicable Package
_UI_ClassFilter_applicableClass_feature = Applicable Class
_UI_ResourceFilter_pattern_feature = Pattern
_UI_ExpressionFilter_expression_feature = Expression
_UI_CombinedFilter_operands_feature = Operands
_UI_ReferenceFilter_type = Reference Filter
_UI_ReferenceFilter_reference_feature = Reference
_UI_FilterPermission_filters_feature = Filters
_UI_ClassFilter_subTypes_feature = Sub Types
_UI_ResourceFilter_readParents_feature = Read Parents
_UI_LinkedFilter_type = Linked Filter
_UI_LinkedFilter_filter_feature = Filter
_UI_ResourceFilter_inclusion_feature = Inclusion
_UI_Inclusion_None_literal = None
_UI_Inclusion_Up_literal = Up
_UI_Inclusion_Down_literal = Down
_UI_Inclusion_Pattern_literal = Pattern
_UI_ResourceFilter_path_feature = Path
_UI_Inclusion_Exact_literal = Exact
_UI_Inclusion_ExactAndUp_literal = ExactAndUp
_UI_Inclusion_ExactAndDown_literal = ExactAndDown
_UI_Inclusion_Regex_literal = Regex
_UI_ResourceFilter_style_feature = Style
_UI_ResourceFilter_folders_feature = Folders
_UI_ResourceFilter_parentFolders_feature = Parent Folders
_UI_ResourceFilter_rootResource_feature = Root Resource
_UI_ResourceFilter_modelResources_feature = Model Resources
_UI_ResourceFilter_modelObjects_feature = Model Objects
_UI_ResourceFilter_textResources_feature = Text Resources
_UI_ResourceFilter_binaryResources_feature = Binary Resources
_UI_Style_EXACT_literal = EXACT
_UI_Style_ANT_literal = ANT
_UI_Style_REGEX_literal = REGEX
_UI_ResourceFilter_patternStyle_feature = Pattern Style
_UI_PatternStyle_NONE_literal = NONE
_UI_PatternStyle_ANT_literal = ANT
_UI_PatternStyle_REGEX_literal = REGEX
_UI_ResourceFilter_childNodes_feature = Child Nodes
_UI_ResourceFilter_includeParents_feature = Include Parents
_UI_ResourceFilter_includeRoot_feature = Include Root
_UI_PatternStyle_EXACT_literal = EXACT
_UI_PatternStyle_TREE_literal = TREE
