Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-06-09 11:04:57 +0000
committerEike Stepper2012-06-09 11:04:57 +0000
commit6f1faab6f60b6c691c05a5629ff89497906e10c9 (patch)
treedaccdf8607750955bbd45141edff11a60884e463
parent78512dbb6fbd518b10cf1f16ca964c3df8cb947c (diff)
downloadcdo-6f1faab6f60b6c691c05a5629ff89497906e10c9.tar.gz
cdo-6f1faab6f60b6c691c05a5629ff89497906e10c9.tar.xz
cdo-6f1faab6f60b6c691c05a5629ff89497906e10c9.zip
[381472] Design a repository administration API
https://bugs.eclipse.org/bugs/show_bug.cgi?id=381472
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ClassCheck.gifbin0 -> 206 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Container.gifbin129 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Directory.gifbin129 -> 219 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Group.gifbin129 -> 603 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/PackageCheck.gifbin0 -> 207 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Realm.gifbin129 -> 239 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ResourceCheck.gifbin0 -> 346 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Role.gifbin129 -> 528 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/SecurityRealm.gifbin129 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/User.gifbin129 -> 308 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserLocked.gif (renamed from plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddy_disabled.gif)bin313 -> 313 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserPassword.gifbin129 -> 132 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/READ.gifbin0 -> 143 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/WRITE.gifbin0 -> 181 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/plugin.properties22
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/CheckItemProvider.java171
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ClassCheckItemProvider.java146
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/PackageCheckItemProvider.java146
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RealmItemProvider.java64
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ResourceCheckItemProvider.java157
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RoleItemProvider.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java81
-rw-r--r--plugins/org.eclipse.emf.cdo.security/model/security.ecore32
-rw-r--r--plugins/org.eclipse.emf.cdo.security/model/security.ecorediag247
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java85
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java220
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Realm.java68
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/RealmUtil.java97
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java49
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Role.java28
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityFactory.java27
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java513
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java102
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java58
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java59
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RealmImpl.java139
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java66
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RoleImpl.java18
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityFactoryImpl.java102
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java280
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecurityAdapterFactory.java88
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecuritySwitch.java106
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java31
-rw-r--r--plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddies.gifbin603 -> 0 bytes
-rw-r--r--plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddy.gifbin308 -> 0 bytes
-rw-r--r--plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/folder.gifbin219 -> 0 bytes
48 files changed, 3232 insertions, 104 deletions
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ClassCheck.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ClassCheck.gif
new file mode 100644
index 0000000000..2b8da630d8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ClassCheck.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Container.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Container.gif
deleted file mode 100644
index c00aedf413..0000000000
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Container.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Directory.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Directory.gif
index 134551bff7..42e027c933 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Directory.gif
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Directory.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Group.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Group.gif
index 90d10f9470..952ed084bd 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Group.gif
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Group.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/PackageCheck.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/PackageCheck.gif
new file mode 100644
index 0000000000..30c5c10cc4
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/PackageCheck.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Realm.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Realm.gif
index 33a997a160..8e3d48a637 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Realm.gif
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Realm.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ResourceCheck.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ResourceCheck.gif
new file mode 100644
index 0000000000..27c7cbbe48
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/ResourceCheck.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Role.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Role.gif
index be22463d29..daa3652e9b 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Role.gif
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/Role.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/SecurityRealm.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/SecurityRealm.gif
deleted file mode 100644
index 14af8aaee9..0000000000
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/SecurityRealm.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/User.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/User.gif
index 48e3cf2268..5eed04350e 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/User.gif
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/User.gif
Binary files differ
diff --git a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddy_disabled.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserLocked.gif
index c684f405b5..c684f405b5 100644
--- a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddy_disabled.gif
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserLocked.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserPassword.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserPassword.gif
index 2124f3e3ab..c6021728de 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserPassword.gif
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/obj16/UserPassword.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/READ.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/READ.gif
new file mode 100644
index 0000000000..94db8466f1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/READ.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/WRITE.gif b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/WRITE.gif
new file mode 100644
index 0000000000..b23966fbe9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/icons/full/ovr16/WRITE.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties
index ffc4ef785c..2e78589916 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.security.edit/plugin.properties
@@ -37,15 +37,15 @@ _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_id_feature = ID
_UI_Role_type_feature = Type
_UI_Assignee_roles_feature = Roles
-_UI_Assignee_id_feature = Id
+_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 = Email
+_UI_User_email_feature = E-Mail
_UI_User_locked_feature = Locked
_UI_User_password_feature = Password
_UI_UserPassword_encrypted_feature = Encrypted
@@ -65,3 +65,19 @@ _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_Check_type = Check
+_UI_ClassCheck_type = Class Check
+_UI_PackageCheck_type = Package Check
+_UI_ResourceCheck_type = Resource Check
+_UI_Role_checks_feature = Checks
+_UI_Check_role_feature = Role
+_UI_Check_permission_feature = Permission
+_UI_ClassCheck_classes_feature = Classes
+_UI_PackageCheck_packages_feature = Packages
+_UI_ResourceCheck_pattern_feature = Pattern
+_UI_Permission_READ_literal = READ
+_UI_Permission_WRITE_literal = WRITE
+_UI_Realm_allUsers_feature = All Users
+_UI_Realm_allGroups_feature = All Groups
+_UI_Realm_allRoles_feature = All Roles
+_UI_Realm_allChecks_feature = All Checks
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/CheckItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/CheckItemProvider.java
new file mode 100644
index 0000000000..e48ff137b6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/CheckItemProvider.java
@@ -0,0 +1,171 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.provider;
+
+import org.eclipse.emf.cdo.security.Check;
+import org.eclipse.emf.cdo.security.Permission;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemColorProvider;
+import org.eclipse.emf.edit.provider.IItemFontProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITableItemColorProvider;
+import org.eclipse.emf.edit.provider.ITableItemFontProvider;
+import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.security.Check} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CheckItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource,
+ ITableItemLabelProvider, ITableItemColorProvider, ITableItemFontProvider, IItemColorProvider, IItemFontProvider
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CheckItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addPermissionPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Permission feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPermissionPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Check_permission_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Check_permission_feature", "_UI_Check_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.CHECK__PERMISSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null, null));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ return hasChildren(object, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Permission labelValue = ((Check)object).getPermission();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_Check_type") : //$NON-NLS-1$
+ getString("_UI_Check_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Check.class))
+ {
+ case SecurityPackage.CHECK__PERMISSION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ClassCheckItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ClassCheckItemProvider.java
new file mode 100644
index 0000000000..2631c29fc4
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ClassCheckItemProvider.java
@@ -0,0 +1,146 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.provider;
+
+import org.eclipse.emf.cdo.security.ClassCheck;
+import org.eclipse.emf.cdo.security.Permission;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemColorProvider;
+import org.eclipse.emf.edit.provider.IItemFontProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITableItemColorProvider;
+import org.eclipse.emf.edit.provider.ITableItemFontProvider;
+import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.security.ClassCheck} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ClassCheckItemProvider extends CheckItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource,
+ ITableItemLabelProvider, ITableItemColorProvider, ITableItemFontProvider, IItemColorProvider, IItemFontProvider
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassCheckItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addClassesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Classes feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addClassesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_ClassCheck_classes_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_ClassCheck_classes_feature", "_UI_ClassCheck_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.CLASS_CHECK__CLASSES, true, false, true, null, null, null));
+ }
+
+ /**
+ * This returns ClassCheck.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ClassCheck")); //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Permission labelValue = ((ClassCheck)object).getPermission();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ClassCheck_type") : //$NON-NLS-1$
+ getString("_UI_ClassCheck_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/PackageCheckItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/PackageCheckItemProvider.java
new file mode 100644
index 0000000000..61d97265a0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/PackageCheckItemProvider.java
@@ -0,0 +1,146 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.provider;
+
+import org.eclipse.emf.cdo.security.PackageCheck;
+import org.eclipse.emf.cdo.security.Permission;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemColorProvider;
+import org.eclipse.emf.edit.provider.IItemFontProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITableItemColorProvider;
+import org.eclipse.emf.edit.provider.ITableItemFontProvider;
+import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.security.PackageCheck} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PackageCheckItemProvider extends CheckItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource,
+ ITableItemLabelProvider, ITableItemColorProvider, ITableItemFontProvider, IItemColorProvider, IItemFontProvider
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageCheckItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addPackagesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Packages feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPackagesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_PackageCheck_packages_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_PackageCheck_packages_feature", "_UI_PackageCheck_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.PACKAGE_CHECK__PACKAGES, true, false, true, null, null, null));
+ }
+
+ /**
+ * This returns PackageCheck.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PackageCheck")); //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Permission labelValue = ((PackageCheck)object).getPermission();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_PackageCheck_type") : //$NON-NLS-1$
+ getString("_UI_PackageCheck_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RealmItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RealmItemProvider.java
index b75fc58340..6794166b79 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RealmItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RealmItemProvider.java
@@ -69,12 +69,76 @@ public class RealmItemProvider extends SecurityElementItemProvider implements IE
{
super.getPropertyDescriptors(object);
+ addAllUsersPropertyDescriptor(object);
+ addAllGroupsPropertyDescriptor(object);
+ addAllRolesPropertyDescriptor(object);
+ addAllChecksPropertyDescriptor(object);
addNamePropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
/**
+ * This adds a property descriptor for the All Users feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllUsersPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Realm_allUsers_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Realm_allUsers_feature", "_UI_Realm_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.REALM__ALL_USERS, false, false, false, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the All Groups feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllGroupsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Realm_allGroups_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Realm_allGroups_feature", "_UI_Realm_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.REALM__ALL_GROUPS, false, false, false, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the All Roles feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllRolesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Realm_allRoles_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Realm_allRoles_feature", "_UI_Realm_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.REALM__ALL_ROLES, false, false, false, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the All Checks feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAllChecksPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Realm_allChecks_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Realm_allChecks_feature", "_UI_Realm_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.REALM__ALL_CHECKS, false, false, false, null, null, null));
+ }
+
+ /**
* This adds a property descriptor for the Name feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ResourceCheckItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ResourceCheckItemProvider.java
new file mode 100644
index 0000000000..5650b1fd88
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/ResourceCheckItemProvider.java
@@ -0,0 +1,157 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.provider;
+
+import org.eclipse.emf.cdo.security.Permission;
+import org.eclipse.emf.cdo.security.ResourceCheck;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemColorProvider;
+import org.eclipse.emf.edit.provider.IItemFontProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITableItemColorProvider;
+import org.eclipse.emf.edit.provider.ITableItemFontProvider;
+import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.security.ResourceCheck} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ResourceCheckItemProvider extends CheckItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource,
+ ITableItemLabelProvider, ITableItemColorProvider, ITableItemFontProvider, IItemColorProvider, IItemFontProvider
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceCheckItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addPatternPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Pattern feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPatternPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ResourceCheck_pattern_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_ResourceCheck_pattern_feature", "_UI_ResourceCheck_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ SecurityPackage.Literals.RESOURCE_CHECK__PATTERN, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns ResourceCheck.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ResourceCheck")); //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Permission labelValue = ((ResourceCheck)object).getPermission();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ResourceCheck_type") : //$NON-NLS-1$
+ getString("_UI_ResourceCheck_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ResourceCheck.class))
+ {
+ case SecurityPackage.RESOURCE_CHECK__PATTERN:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RoleItemProvider.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RoleItemProvider.java
index d796a4ba7a..ddcdae5f79 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RoleItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/RoleItemProvider.java
@@ -11,10 +11,12 @@
package org.eclipse.emf.cdo.security.provider;
import org.eclipse.emf.cdo.security.Role;
+import org.eclipse.emf.cdo.security.SecurityFactory;
import org.eclipse.emf.cdo.security.SecurityPackage;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemColorProvider;
@@ -69,7 +71,6 @@ public class RoleItemProvider extends SecurityItemItemProvider implements IEditi
addAssigneesPropertyDescriptor(object);
addIdPropertyDescriptor(object);
- addTypePropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -105,20 +106,36 @@ public class RoleItemProvider extends SecurityItemItemProvider implements IEditi
}
/**
- * This adds a property descriptor for the Type feature.
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected void addTypePropertyDescriptor(Object object)
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
{
- itemPropertyDescriptors
- .add(createItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
- getResourceLocator(),
- getString("_UI_Role_type_feature"), //$NON-NLS-1$
- getString("_UI_PropertyDescriptor_description", "_UI_Role_type_feature", "_UI_Role_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- SecurityPackage.Literals.ROLE__TYPE, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null,
- null));
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(SecurityPackage.Literals.ROLE__CHECKS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
}
/**
@@ -173,9 +190,11 @@ public class RoleItemProvider extends SecurityItemItemProvider implements IEditi
switch (notification.getFeatureID(Role.class))
{
case SecurityPackage.ROLE__ID:
- case SecurityPackage.ROLE__TYPE:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
+ case SecurityPackage.ROLE__CHECKS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
}
super.notifyChanged(notification);
}
@@ -191,6 +210,15 @@ public class RoleItemProvider extends SecurityItemItemProvider implements IEditi
protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
{
super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(SecurityPackage.Literals.ROLE__CHECKS,
+ SecurityFactory.eINSTANCE.createClassCheck()));
+
+ newChildDescriptors.add(createChildParameter(SecurityPackage.Literals.ROLE__CHECKS,
+ SecurityFactory.eINSTANCE.createPackageCheck()));
+
+ newChildDescriptors.add(createChildParameter(SecurityPackage.Literals.ROLE__CHECKS,
+ SecurityFactory.eINSTANCE.createResourceCheck()));
}
}
diff --git a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java
index 26b612adbb..e48f472ca7 100644
--- a/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.security.edit/src/org/eclipse/emf/cdo/security/provider/SecurityItemProviderAdapterFactory.java
@@ -257,6 +257,81 @@ public class SecurityItemProviderAdapterFactory extends SecurityAdapterFactory i
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.ClassCheck} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassCheckItemProvider classCheckItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.security.ClassCheck}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createClassCheckAdapter()
+ {
+ if (classCheckItemProvider == null)
+ {
+ classCheckItemProvider = new ClassCheckItemProvider(this);
+ }
+
+ return classCheckItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.PackageCheck} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackageCheckItemProvider packageCheckItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.security.PackageCheck}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPackageCheckAdapter()
+ {
+ if (packageCheckItemProvider == null)
+ {
+ packageCheckItemProvider = new PackageCheckItemProvider(this);
+ }
+
+ return packageCheckItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.ResourceCheck} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ResourceCheckItemProvider resourceCheckItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.security.ResourceCheck}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createResourceCheckAdapter()
+ {
+ if (resourceCheckItemProvider == null)
+ {
+ resourceCheckItemProvider = new ResourceCheckItemProvider(this);
+ }
+
+ return resourceCheckItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -409,6 +484,12 @@ public class SecurityItemProviderAdapterFactory extends SecurityAdapterFactory i
userItemProvider.dispose();
if (userPasswordItemProvider != null)
userPasswordItemProvider.dispose();
+ if (classCheckItemProvider != null)
+ classCheckItemProvider.dispose();
+ if (packageCheckItemProvider != null)
+ packageCheckItemProvider.dispose();
+ if (resourceCheckItemProvider != null)
+ resourceCheckItemProvider.dispose();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.security/model/security.ecore b/plugins/org.eclipse.emf.cdo.security/model/security.ecore
index 2fb7329c14..7980d16ad9 100644
--- a/plugins/org.eclipse.emf.cdo.security/model/security.ecore
+++ b/plugins/org.eclipse.emf.cdo.security/model/security.ecore
@@ -9,6 +9,14 @@
<eClassifiers xsi:type="ecore:EClass" name="Realm" eSuperTypes="#//SecurityElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
eType="#//SecurityItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allUsers" upperBound="-1"
+ eType="#//User" changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allGroups" upperBound="-1"
+ eType="#//Group" changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allRoles" upperBound="-1"
+ eType="#//Role" changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="allChecks" upperBound="-1"
+ eType="#//Check" changeable="false" volatile="true" transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Directory" eSuperTypes="#//SecurityItem">
@@ -20,7 +28,8 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="assignees" upperBound="-1"
eType="#//Assignee" eOpposite="#//Assignee/roles"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="checks" upperBound="-1"
+ eType="#//Check" containment="true" eOpposite="#//Check/role"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Assignee" abstract="true" eSuperTypes="#//SecurityItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="roles" upperBound="-1"
@@ -60,4 +69,25 @@
<eClassifiers xsi:type="ecore:EClass" name="UserPassword">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="encrypted" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Check" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="role" lowerBound="1" eType="#//Role"
+ eOpposite="#//Role/checks"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="permission" eType="#//Permission"
+ defaultValueLiteral="WRITE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassCheck" eSuperTypes="#//Check">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classes" lowerBound="1"
+ upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageCheck" eSuperTypes="#//Check">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packages" lowerBound="1"
+ upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResourceCheck" eSuperTypes="#//Check">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Permission">
+ <eLiterals name="READ"/>
+ <eLiterals name="WRITE" value="1"/>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag b/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag
index 38a3250525..5963a3890d 100644
--- a/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag
+++ b/plugins/org.eclipse.emf.cdo.security/model/security.ecorediag
@@ -18,7 +18,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_BlvtcawpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//SecurityElement"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlvtcqwpEeGqBf0LMO47dg" x="190" y="20"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlvtcqwpEeGqBf0LMO47dg" x="305" y="20"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BlxioqwpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_BlyJsKwpEeGqBf0LMO47dg" type="4001"/>
@@ -34,7 +34,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Blxio6wpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//SecurityItem"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlxipKwpEeGqBf0LMO47dg" x="297" y="126"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlxipKwpEeGqBf0LMO47dg" x="211" y="136"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BlyJuawpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_BlyJvKwpEeGqBf0LMO47dg" type="4001"/>
@@ -54,7 +54,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_BlyJuqwpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//Realm"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlyJu6wpEeGqBf0LMO47dg" x="86" y="122"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlyJu6wpEeGqBf0LMO47dg" x="432" y="132"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BlywyqwpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_BlzX0KwpEeGqBf0LMO47dg" type="4001"/>
@@ -74,7 +74,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Blywy6wpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//Directory"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlywzKwpEeGqBf0LMO47dg" x="441" y="235"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlywzKwpEeGqBf0LMO47dg" x="72" y="245"/>
</children>
<children xmi:type="notation:Node" xmi:id="_BlzX26wpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_Blz-4KwpEeGqBf0LMO47dg" type="4001"/>
@@ -83,10 +83,6 @@
<element xmi:type="ecore:EAttribute" href="security.ecore#//Role/id"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_Blz-6qwpEeGqBf0LMO47dg"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_Blz-66wpEeGqBf0LMO47dg" type="2001">
- <element xmi:type="ecore:EAttribute" href="security.ecore#//Role/type"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Blz-7KwpEeGqBf0LMO47dg"/>
- </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_Blz-4qwpEeGqBf0LMO47dg"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_Blz-46wpEeGqBf0LMO47dg"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_Blz-5KwpEeGqBf0LMO47dg"/>
@@ -98,7 +94,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_BlzX3KwpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//Role"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlzX3awpEeGqBf0LMO47dg" x="81" y="227"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlzX3awpEeGqBf0LMO47dg" x="439" y="245"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Bl0l8KwpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_Bl0l86wpEeGqBf0LMO47dg" type="4001"/>
@@ -118,7 +114,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Bl0l8awpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//Assignee"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl0l8qwpEeGqBf0LMO47dg" x="297" y="235"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl0l8qwpEeGqBf0LMO47dg" x="211" y="245"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Bl1NAqwpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_Bl10EKwpEeGqBf0LMO47dg" type="4001"/>
@@ -134,7 +130,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Bl1NA6wpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//Group"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl1NBKwpEeGqBf0LMO47dg" x="411" y="363"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl1NBKwpEeGqBf0LMO47dg" x="325" y="373"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Bl2bIKwpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_Bl2bI6wpEeGqBf0LMO47dg" type="4001"/>
@@ -170,7 +166,7 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Bl2bIawpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//User"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl2bIqwpEeGqBf0LMO47dg" x="146" y="358"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl2bIqwpEeGqBf0LMO47dg" x="60" y="368"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Bl3pQKwpEeGqBf0LMO47dg" type="1001">
<children xmi:type="notation:Node" xmi:id="_Bl3pQ6wpEeGqBf0LMO47dg" type="4001"/>
@@ -190,7 +186,136 @@
</children>
<styles xmi:type="notation:ShapeStyle" xmi:id="_Bl3pQawpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="security.ecore#//UserPassword"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl3pQqwpEeGqBf0LMO47dg" x="145" y="533"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bl3pQqwpEeGqBf0LMO47dg" x="59" y="543"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PWGq0LIPEeGyraMqKGwiUw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_PWKVMLIPEeGyraMqKGwiUw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_PWMKYLIPEeGyraMqKGwiUw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_bKMSALIREeGyraMqKGwiUw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="security.ecore#//Check/permission"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bKMSAbIREeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PWMKYbIPEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PWMKYrIPEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PWMKY7IPEeGyraMqKGwiUw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_PWN_kLIPEeGyraMqKGwiUw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PWN_kbIPEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PWN_krIPEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PWN_k7IPEeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_PWGq0bIPEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="security.ecore#//Check"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PWGq0rIPEeGyraMqKGwiUw" x="693" y="245" width="183"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tvbkQLIQEeGyraMqKGwiUw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_tvdZcLIQEeGyraMqKGwiUw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_tvdZcbIQEeGyraMqKGwiUw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tvdZcrIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tvdZc7IQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tvdZdLIQEeGyraMqKGwiUw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_tveAgLIQEeGyraMqKGwiUw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_tveAgbIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tveAgrIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tveAg7IQEeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tvbkQbIQEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="security.ecore#//ClassCheck"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tvbkQrIQEeGyraMqKGwiUw" x="731" y="373" width="108"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_u_PmULIQEeGyraMqKGwiUw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_u_Q0cLIQEeGyraMqKGwiUw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_u_Q0cbIQEeGyraMqKGwiUw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_u_Q0crIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u_Q0c7IQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u_Q0dLIQEeGyraMqKGwiUw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_u_RbgLIQEeGyraMqKGwiUw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_u_RbgbIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_u_RbgrIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_u_Rbg7IQEeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_u_PmUbIQEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="security.ecore#//PackageCheck"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u_PmUrIQEeGyraMqKGwiUw" x="565" y="373" width="128"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xW1v0LIQEeGyraMqKGwiUw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_xW298LIQEeGyraMqKGwiUw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_xW298bIQEeGyraMqKGwiUw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_8_ib0LIREeGyraMqKGwiUw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="security.ecore#//ResourceCheck/pattern"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8_ib0bIREeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_xW298rIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xW2987IQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xW3lALIQEeGyraMqKGwiUw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xW4zILIQEeGyraMqKGwiUw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_xW4zIbIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xW4zIrIQEeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xW4zI7IQEeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_xW1v0bIQEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="security.ecore#//ResourceCheck"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xW1v0rIQEeGyraMqKGwiUw" x="875" y="373" width="134"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Fl308LIREeGyraMqKGwiUw" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_Fl64QLIREeGyraMqKGwiUw" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_Fl8GYLIREeGyraMqKGwiUw" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_UF7lELIREeGyraMqKGwiUw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="security.ecore#//Permission/READ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UF7lEbIREeGyraMqKGwiUw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_XaOAULIREeGyraMqKGwiUw" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="security.ecore#//Permission/WRITE"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XaOAUbIREeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Fl8GYbIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Fl8GYrIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Fl8GY7IREeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Fl4cALIREeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="security.ecore#//Permission"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fl4cAbIREeGyraMqKGwiUw" x="719" y="121" width="132"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x3ZpwLIREeGyraMqKGwiUw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x4HbcLIREeGyraMqKGwiUw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x4HbcbIREeGyraMqKGwiUw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_x3rWkLIREeGyraMqKGwiUw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_x3r9oLIREeGyraMqKGwiUw" visible="false" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_x3r9obIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x3r9orIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x3r9o7IREeGyraMqKGwiUw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x3sksLIREeGyraMqKGwiUw" visible="false" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_x3sksbIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x3sksrIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x3sks7IREeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_x3ZpwbIREeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x3ZpwrIREeGyraMqKGwiUw" x="734" y="475"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2OPHILIREeGyraMqKGwiUw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2Om6kLIREeGyraMqKGwiUw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Om6kbIREeGyraMqKGwiUw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_2OQ8ULIREeGyraMqKGwiUw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_2OQ8UbIREeGyraMqKGwiUw" visible="false" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2OQ8UrIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2ORjYLIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2ORjYbIREeGyraMqKGwiUw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2ORjYrIREeGyraMqKGwiUw" visible="false" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2ORjY7IREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2OSKcLIREeGyraMqKGwiUw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2OSKcbIREeGyraMqKGwiUw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_2OPHIbIREeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2OPHIrIREeGyraMqKGwiUw" x="578" y="475"/>
</children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_BlsqIawpEeGqBf0LMO47dg"/>
<element xmi:type="ecore:EPackage" href="security.ecore#/"/>
@@ -198,7 +323,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl4QUawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl4QUqwpEeGqBf0LMO47dg" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl4QU6wpEeGqBf0LMO47dg" points="[0, 0, 123, 57]$[0, -31, 123, 26]$[-88, -31, 35, 26]$[-88, -57, 35, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl4QU6wpEeGqBf0LMO47dg" points="[0, 0, -78, 57]$[0, -31, -78, 26]$[113, -31, 35, 26]$[113, -57, 35, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm4V4awpEeGqBf0LMO47dg" id="(0.5,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm4V4qwpEeGqBf0LMO47dg" id="(0.24647887323943662,1.0)"/>
</edges>
@@ -207,7 +332,7 @@
<layoutConstraint xmi:type="notation:Location" xmi:id="_Bl4QWawpEeGqBf0LMO47dg" x="-10" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Bl4QWqwpEeGqBf0LMO47dg" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Bl4QW6wpEeGqBf0LMO47dg" x="2" y="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bl4QW6wpEeGqBf0LMO47dg" x="-5" y="12"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl4QVawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl4QVqwpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
@@ -220,7 +345,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl43YawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl43YqwpEeGqBf0LMO47dg" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl43Y6wpEeGqBf0LMO47dg" points="[0, 0, -118, 53]$[0, -27, -118, 26]$[117, -27, -1, 26]$[117, -53, -1, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl43Y6wpEeGqBf0LMO47dg" points="[0, 0, 113, 53]$[0, -27, 113, 26]$[-114, -27, -1, 26]$[-114, -53, -1, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm8AQqwpEeGqBf0LMO47dg" id="(0.4956521739130435,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm8AQ6wpEeGqBf0LMO47dg" id="(0.5,1.0)"/>
</edges>
@@ -234,7 +359,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl43ZawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl43ZqwpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="security.ecore#//Directory/items"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl43Z6wpEeGqBf0LMO47dg" points="[76, 24, 241, 92]$[107, 24, 272, 92]$[107, -87, 272, -19]$[-81, -87, 84, -19]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl43Z6wpEeGqBf0LMO47dg" points="[-37, 25, -155, 93]$[-79, 25, -197, 93]$[-79, -85, -197, -17]$[102, -85, -16, -17]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm488KwpEeGqBf0LMO47dg" id="(0.33043478260869563,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm488awpEeGqBf0LMO47dg" id="(0.16666666666666666,1.0)"/>
</edges>
@@ -242,7 +367,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl6FgawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl6FgqwpEeGqBf0LMO47dg" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6Fg6wpEeGqBf0LMO47dg" points="[-18, 0, 167, 68]$[-18, -37, 167, 31]$[-169, -37, 16, 31]$[-169, -68, 16, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6Fg6wpEeGqBf0LMO47dg" points="[0, 0, -98, 68]$[0, -35, -98, 33]$[114, -35, 16, 33]$[114, -68, 16, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm488qwpEeGqBf0LMO47dg" id="(0.6608695652173913,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm4886wpEeGqBf0LMO47dg" id="(0.3333333333333333,1.0)"/>
</edges>
@@ -256,15 +381,15 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl6FhawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl6FhqwpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="security.ecore#//Role/assignees"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6Fh6wpEeGqBf0LMO47dg" points="[18, 36, -144, -21]$[128, 36, -34, -21]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oREuwawpEeGqBf0LMO47dg" id="(0.8333333333333334,0.0)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oREuwqwpEeGqBf0LMO47dg" id="(0.3431372549019608,1.0)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6Fh6wpEeGqBf0LMO47dg" points="[-83, 28, 194, -21]$[-211, 28, 66, -21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hfr0cLIREeGyraMqKGwiUw" id="(0.8333333333333334,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hfr0cbIREeGyraMqKGwiUw" id="(0.3431372549019608,1.0)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_Bl6skKwpEeGqBf0LMO47dg" type="3003" source="_BlzX26wpEeGqBf0LMO47dg" target="_BlxioqwpEeGqBf0LMO47dg">
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl6skawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl6skqwpEeGqBf0LMO47dg" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6sk6wpEeGqBf0LMO47dg" points="[-1, 0, -214, 60]$[-1, -29, -214, 31]$[212, -29, -1, 31]$[212, -60, -1, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6sk6wpEeGqBf0LMO47dg" points="[0, 0, 228, 68]$[0, -35, 228, 33]$[-229, -35, -1, 33]$[-229, -68, -1, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm8nUKwpEeGqBf0LMO47dg" id="(0.5,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm8nUawpEeGqBf0LMO47dg" id="(0.5,1.0)"/>
</edges>
@@ -278,7 +403,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl6slawpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl6slqwpEeGqBf0LMO47dg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="security.ecore#//Assignee/roles"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6sl6wpEeGqBf0LMO47dg" points="[-34, -21, 128, 36]$[-144, -21, 18, 36]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl6sl6wpEeGqBf0LMO47dg" points="[66, -21, -211, 28]$[194, -21, -83, 28]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm5kAKwpEeGqBf0LMO47dg" id="(0.3431372549019608,1.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm5kAawpEeGqBf0LMO47dg" id="(0.8333333333333334,0.0)"/>
</edges>
@@ -292,7 +417,7 @@
</edges>
<edges xmi:type="notation:Edge" xmi:id="_Bl7ToKwpEeGqBf0LMO47dg" type="3002" source="_Bl1NAqwpEeGqBf0LMO47dg" target="_Bl1NAqwpEeGqBf0LMO47dg">
<children xmi:type="notation:Node" xmi:id="_Bl7TpKwpEeGqBf0LMO47dg" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Bl7TpawpEeGqBf0LMO47dg" x="27" y="-48"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bl7TpawpEeGqBf0LMO47dg" x="25" y="-53"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Bl7TpqwpEeGqBf0LMO47dg" type="4012">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Bl7Tp6wpEeGqBf0LMO47dg" x="25" y="15"/>
@@ -336,7 +461,7 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl9I1awpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl9I1qwpEeGqBf0LMO47dg" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl9I16wpEeGqBf0LMO47dg" points="[0, 0, 113, 79]$[0, -40, 113, 39]$[-110, -40, 3, 39]$[-110, -79, 3, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl9I16wpEeGqBf0LMO47dg" points="[0, 0, 113, 79]$[0, -40, 113, 39]$[-115, -40, -2, 39]$[-115, -79, -2, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm9OYKwpEeGqBf0LMO47dg" id="(0.5,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm9OYawpEeGqBf0LMO47dg" id="(0.5196078431372549,1.0)"/>
</edges>
@@ -372,8 +497,78 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_Bl-W_awpEeGqBf0LMO47dg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Bl-W_qwpEeGqBf0LMO47dg" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl-W_6wpEeGqBf0LMO47dg" points="[-33, 0, -156, 74]$[-33, -35, -156, 39]$[102, -35, -21, 39]$[102, -74, -21, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl-W_6wpEeGqBf0LMO47dg" points="[-33, 0, -156, 74]$[-33, -35, -156, 39]$[97, -35, -26, 39]$[97, -74, -26, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm9OYqwpEeGqBf0LMO47dg" id="(0.75,0.0)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bm9OY6wpEeGqBf0LMO47dg" id="(0.7549019607843137,1.0)"/>
</edges>
+ <edges xmi:type="notation:Edge" xmi:id="_pKXTELIPEeGyraMqKGwiUw" type="3002" source="_BlzX26wpEeGqBf0LMO47dg" target="_PWGq0LIPEeGyraMqKGwiUw">
+ <children xmi:type="notation:Node" xmi:id="_pKaWYLIPEeGyraMqKGwiUw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pKaWYbIPEeGyraMqKGwiUw" x="-3" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_pKbkgLIPEeGyraMqKGwiUw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pKbkgbIPEeGyraMqKGwiUw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_pKXTEbIPEeGyraMqKGwiUw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pKXTErIPEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="security.ecore#//Role/checks"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pKXTE7IPEeGyraMqKGwiUw" points="[90, 20, -244, 6]$[244, 20, -90, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rYr54LIREeGyraMqKGwiUw" id="(0.10784313725490197,0.21568627450980393)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rYr54bIREeGyraMqKGwiUw" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_s4d8gLIPEeGyraMqKGwiUw" type="3002" source="_PWGq0LIPEeGyraMqKGwiUw" target="_BlzX26wpEeGqBf0LMO47dg">
+ <children xmi:type="notation:Node" xmi:id="_s4fxsLIPEeGyraMqKGwiUw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s4fxsbIPEeGyraMqKGwiUw" x="-5" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_s4gYwLIPEeGyraMqKGwiUw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s4gYwbIPEeGyraMqKGwiUw" x="1" y="12"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_s4d8gbIPEeGyraMqKGwiUw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_s4ejkLIPEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="security.ecore#//Check/role"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s4ejkbIPEeGyraMqKGwiUw" points="[-90, 6, 244, 20]$[-244, 6, 90, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A7j3YLIQEeGyraMqKGwiUw" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A7kecLIQEeGyraMqKGwiUw" id="(0.10784313725490197,0.21568627450980393)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_9vQeALIQEeGyraMqKGwiUw" type="3003" source="_tvbkQLIQEeGyraMqKGwiUw" target="_PWGq0LIPEeGyraMqKGwiUw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_9vQeAbIQEeGyraMqKGwiUw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9vQeArIQEeGyraMqKGwiUw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9vQeA7IQEeGyraMqKGwiUw" points="[-1, -20, 0, 104]$[-1, -99, 0, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="__I5KcLIQEeGyraMqKGwiUw" type="3003" source="_u_PmULIQEeGyraMqKGwiUw" target="_PWGq0LIPEeGyraMqKGwiUw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="__I5KcbIQEeGyraMqKGwiUw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="__I5KcrIQEeGyraMqKGwiUw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__I5Kc7IQEeGyraMqKGwiUw" points="[-1, -20, -156, 104]$[-1, -58, -156, 66]$[155, -58, 0, 66]$[155, -99, 0, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="__v8jYLIQEeGyraMqKGwiUw" type="3003" source="_xW1v0LIQEeGyraMqKGwiUw" target="_PWGq0LIPEeGyraMqKGwiUw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="__v8jYbIQEeGyraMqKGwiUw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="__v8jYrIQEeGyraMqKGwiUw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__v8jY7IQEeGyraMqKGwiUw" points="[-1, -24, 157, 104]$[-1, -62, 157, 66]$[-158, -62, 0, 66]$[-158, -103, 0, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Ew44QLISEeGyraMqKGwiUw" type="3002" source="_u_PmULIQEeGyraMqKGwiUw" target="_2OPHILIREeGyraMqKGwiUw">
+ <children xmi:type="notation:Node" xmi:id="_ExA0ELISEeGyraMqKGwiUw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ExA0EbISEeGyraMqKGwiUw" x="-13" y="-36"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ExA0ErISEeGyraMqKGwiUw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ExA0E7ISEeGyraMqKGwiUw" x="-13" y="17"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Ew44QbISEeGyraMqKGwiUw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ew44QrISEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="security.ecore#//PackageCheck/packages"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ew44Q7ISEeGyraMqKGwiUw" points="[-1, 21, -1, -80]$[-1, 82, -1, -19]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_LjOuwLISEeGyraMqKGwiUw" type="3002" source="_tvbkQLIQEeGyraMqKGwiUw" target="_x3ZpwLIREeGyraMqKGwiUw">
+ <children xmi:type="notation:Node" xmi:id="_LjZt4LISEeGyraMqKGwiUw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LjaU8LISEeGyraMqKGwiUw" x="-13" y="-26"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LjaU8bISEeGyraMqKGwiUw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LjaU8rISEeGyraMqKGwiUw" x="-13" y="17"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_LjPV0LISEeGyraMqKGwiUw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LjPV0bISEeGyraMqKGwiUw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="security.ecore#//ClassCheck/classes"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LjPV0rISEeGyraMqKGwiUw" points="[-1, 21, -1, -80]$[-1, 82, -1, -19]"/>
+ </edges>
</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java
new file mode 100644
index 0000000000..a4586c4c88
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java
@@ -0,0 +1,85 @@
+/**
+ */
+package org.eclipse.emf.cdo.security;
+
+import org.eclipse.emf.cdo.CDOObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Check</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.Check#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.Check#getPermission <em>Permission</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getCheck()
+ * @model abstract="true"
+ * @extends CDOObject
+ * @generated
+ */
+public interface Check extends CDOObject
+{
+ /**
+ * Returns the value of the '<em><b>Role</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.security.Role#getChecks <em>Checks</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Role</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Role</em>' container reference.
+ * @see #setRole(Role)
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getCheck_Role()
+ * @see org.eclipse.emf.cdo.security.Role#getChecks
+ * @model opposite="checks" required="true" transient="false"
+ * @generated
+ */
+ Role getRole();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.security.Check#getRole <em>Role</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Role</em>' container reference.
+ * @see #getRole()
+ * @generated
+ */
+ void setRole(Role value);
+
+ /**
+ * Returns the value of the '<em><b>Permission</b></em>' attribute.
+ * The default value is <code>"WRITE"</code>.
+ * The literals are from the enumeration {@link org.eclipse.emf.cdo.security.Permission}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Permission</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Permission</em>' attribute.
+ * @see org.eclipse.emf.cdo.security.Permission
+ * @see #setPermission(Permission)
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getCheck_Permission()
+ * @model default="WRITE"
+ * @generated
+ */
+ Permission getPermission();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.security.Check#getPermission <em>Permission</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Permission</em>' attribute.
+ * @see org.eclipse.emf.cdo.security.Permission
+ * @see #getPermission()
+ * @generated
+ */
+ void setPermission(Permission value);
+
+} // Check
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java
new file mode 100644
index 0000000000..a79877c3ad
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.security;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Class Check</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.ClassCheck#getClasses <em>Classes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getClassCheck()
+ * @model
+ * @generated
+ */
+public interface ClassCheck extends Check
+{
+ /**
+ * Returns the value of the '<em><b>Classes</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EClass}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classes</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classes</em>' reference list.
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getClassCheck_Classes()
+ * @model required="true"
+ * @generated
+ */
+ EList<EClass> getClasses();
+
+} // ClassCheck
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java
new file mode 100644
index 0000000000..4aaeb80620
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.security;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Package Check</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.PackageCheck#getPackages <em>Packages</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getPackageCheck()
+ * @model
+ * @generated
+ */
+public interface PackageCheck extends Check
+{
+ /**
+ * Returns the value of the '<em><b>Packages</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EPackage}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Packages</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Packages</em>' reference list.
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getPackageCheck_Packages()
+ * @model required="true"
+ * @generated
+ */
+ EList<EPackage> getPackages();
+
+} // PackageCheck
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java
new file mode 100644
index 0000000000..0ff84fdb8c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java
@@ -0,0 +1,220 @@
+/**
+ */
+package org.eclipse.emf.cdo.security;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Permission</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getPermission()
+ * @model
+ * @generated
+ */
+public enum Permission implements Enumerator
+{
+ /**
+ * The '<em><b>READ</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #READ_VALUE
+ * @generated
+ * @ordered
+ */
+ READ(0, "READ", "READ"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>WRITE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WRITE_VALUE
+ * @generated
+ * @ordered
+ */
+ WRITE(1, "WRITE", "WRITE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>READ</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>READ</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #READ
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int READ_VALUE = 0;
+
+ /**
+ * The '<em><b>WRITE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WRITE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WRITE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WRITE_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Permission</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Permission[] VALUES_ARRAY = new Permission[] { READ, WRITE, };
+
+ /**
+ * A public read-only list of all the '<em><b>Permission</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Permission> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Permission</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Permission get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Permission result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Permission</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Permission getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Permission result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Permission</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Permission get(int value)
+ {
+ switch (value)
+ {
+ case READ_VALUE:
+ return READ;
+ case WRITE_VALUE:
+ return WRITE;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Permission(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} // Permission
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Realm.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Realm.java
index 312e694bd2..005e6ece3c 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Realm.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Realm.java
@@ -21,6 +21,10 @@ import org.eclipse.emf.common.util.EList;
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.emf.cdo.security.Realm#getItems <em>Items</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.Realm#getAllUsers <em>All Users</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.Realm#getAllGroups <em>All Groups</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.Realm#getAllRoles <em>All Roles</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.Realm#getAllChecks <em>All Checks</em>}</li>
* <li>{@link org.eclipse.emf.cdo.security.Realm#getName <em>Name</em>}</li>
* </ul>
* </p>
@@ -48,6 +52,70 @@ public interface Realm extends SecurityElement
EList<SecurityItem> getItems();
/**
+ * Returns the value of the '<em><b>All Users</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.security.User}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>All Users</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>All Users</em>' reference list.
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getRealm_AllUsers()
+ * @model transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ EList<User> getAllUsers();
+
+ /**
+ * Returns the value of the '<em><b>All Groups</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.security.Group}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>All Groups</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>All Groups</em>' reference list.
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getRealm_AllGroups()
+ * @model transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ EList<Group> getAllGroups();
+
+ /**
+ * Returns the value of the '<em><b>All Roles</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.security.Role}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>All Roles</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>All Roles</em>' reference list.
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getRealm_AllRoles()
+ * @model transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ EList<Role> getAllRoles();
+
+ /**
+ * Returns the value of the '<em><b>All Checks</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.security.Check}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>All Checks</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>All Checks</em>' reference list.
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getRealm_AllChecks()
+ * @model transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ EList<Check> getAllChecks();
+
+ /**
* Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/RealmUtil.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/RealmUtil.java
index 71adfd8190..593dc4aece 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/RealmUtil.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/RealmUtil.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.security;
import org.eclipse.net4j.util.ObjectUtil;
+import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
/**
@@ -102,4 +103,100 @@ public final class RealmUtil
return null;
}
+
+ public static BasicEList<User> allUsers(EList<SecurityItem> items)
+ {
+ BasicEList<User> result = new BasicEList<User>();
+ allUsers(items, result);
+ return result;
+ }
+
+ public static BasicEList<Group> allGroups(EList<SecurityItem> items)
+ {
+ BasicEList<Group> result = new BasicEList<Group>();
+ allGroups(items, result);
+ return result;
+ }
+
+ public static BasicEList<Role> allRoles(EList<SecurityItem> items)
+ {
+ BasicEList<Role> result = new BasicEList<Role>();
+ allRoles(items, result);
+ return result;
+ }
+
+ public static BasicEList<Check> allChecks(EList<SecurityItem> items)
+ {
+ BasicEList<Check> result = new BasicEList<Check>();
+ allChecks(items, result);
+ return result;
+ }
+
+ private static void allUsers(EList<SecurityItem> items, EList<User> result)
+ {
+ for (SecurityItem item : items)
+ {
+ if (item instanceof User)
+ {
+ User user = (User)item;
+ result.add(user);
+ }
+ else if (item instanceof Directory)
+ {
+ Directory directory = (Directory)item;
+ allUsers(directory.getItems(), result);
+ }
+ }
+ }
+
+ private static void allGroups(EList<SecurityItem> items, EList<Group> result)
+ {
+ for (SecurityItem item : items)
+ {
+ if (item instanceof Group)
+ {
+ Group group = (Group)item;
+ result.add(group);
+ }
+ else if (item instanceof Directory)
+ {
+ Directory directory = (Directory)item;
+ allGroups(directory.getItems(), result);
+ }
+ }
+ }
+
+ private static void allRoles(EList<SecurityItem> items, EList<Role> result)
+ {
+ for (SecurityItem item : items)
+ {
+ if (item instanceof Role)
+ {
+ Role role = (Role)item;
+ result.add(role);
+ }
+ else if (item instanceof Directory)
+ {
+ Directory directory = (Directory)item;
+ allRoles(directory.getItems(), result);
+ }
+ }
+ }
+
+ private static void allChecks(EList<SecurityItem> items, EList<Check> result)
+ {
+ for (SecurityItem item : items)
+ {
+ if (item instanceof Role)
+ {
+ Role role = (Role)item;
+ result.addAll(role.getChecks());
+ }
+ else if (item instanceof Directory)
+ {
+ Directory directory = (Directory)item;
+ allChecks(directory.getItems(), result);
+ }
+ }
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java
new file mode 100644
index 0000000000..d15808783f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java
@@ -0,0 +1,49 @@
+/**
+ */
+package org.eclipse.emf.cdo.security;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Resource Check</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.ResourceCheck#getPattern <em>Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getResourceCheck()
+ * @model
+ * @generated
+ */
+public interface ResourceCheck extends Check
+{
+ /**
+ * Returns the value of the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pattern</em>' attribute.
+ * @see #setPattern(String)
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getResourceCheck_Pattern()
+ * @model
+ * @generated
+ */
+ String getPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.security.ResourceCheck#getPattern <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pattern</em>' attribute.
+ * @see #getPattern()
+ * @generated
+ */
+ void setPattern(String value);
+
+} // ResourceCheck
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Role.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Role.java
index 7fdbf89aab..1db7b742db 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Role.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Role.java
@@ -22,7 +22,7 @@ import org.eclipse.emf.common.util.EList;
* <ul>
* <li>{@link org.eclipse.emf.cdo.security.Role#getAssignees <em>Assignees</em>}</li>
* <li>{@link org.eclipse.emf.cdo.security.Role#getId <em>Id</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.security.Role#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.Role#getChecks <em>Checks</em>}</li>
* </ul>
* </p>
*
@@ -77,29 +77,21 @@ public interface Role extends SecurityItem
void setId(String value);
/**
- * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * Returns the value of the '<em><b>Checks</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.security.Check}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.security.Check#getRole <em>Role</em>}'.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * If the meaning of the '<em>Checks</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Type</em>' attribute.
- * @see #setType(String)
- * @see org.eclipse.emf.cdo.security.SecurityPackage#getRole_Type()
- * @model
- * @generated
- */
- String getType();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.security.Role#getType <em>Type</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Type</em>' attribute.
- * @see #getType()
+ * @return the value of the '<em>Checks</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.security.SecurityPackage#getRole_Checks()
+ * @see org.eclipse.emf.cdo.security.Check#getRole
+ * @model opposite="role" containment="true"
* @generated
*/
- void setType(String value);
+ EList<Check> getChecks();
} // Role
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityFactory.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityFactory.java
index 78297dda13..fbc1a0519b 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityFactory.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityFactory.java
@@ -85,6 +85,33 @@ public interface SecurityFactory extends EFactory
UserPassword createUserPassword();
/**
+ * Returns a new object of class '<em>Class Check</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Class Check</em>'.
+ * @generated
+ */
+ ClassCheck createClassCheck();
+
+ /**
+ * Returns a new object of class '<em>Package Check</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Package Check</em>'.
+ * @generated
+ */
+ PackageCheck createPackageCheck();
+
+ /**
+ * Returns a new object of class '<em>Resource Check</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Resource Check</em>'.
+ * @generated
+ */
+ ResourceCheck createResourceCheck();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java
index 2acaed64c6..44bd901a24 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/SecurityPackage.java
@@ -14,6 +14,7 @@ import org.eclipse.emf.cdo.etypes.EtypesPackage;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
@@ -161,13 +162,49 @@ public interface SecurityPackage extends EPackage
int REALM__ITEMS = SECURITY_ELEMENT_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>All Users</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALM__ALL_USERS = SECURITY_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>All Groups</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALM__ALL_GROUPS = SECURITY_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>All Roles</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALM__ALL_ROLES = SECURITY_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>All Checks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REALM__ALL_CHECKS = SECURITY_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int REALM__NAME = SECURITY_ELEMENT_FEATURE_COUNT + 1;
+ int REALM__NAME = SECURITY_ELEMENT_FEATURE_COUNT + 5;
/**
* The number of structural features of the '<em>Realm</em>' class.
@@ -176,7 +213,7 @@ public interface SecurityPackage extends EPackage
* @generated
* @ordered
*/
- int REALM_FEATURE_COUNT = SECURITY_ELEMENT_FEATURE_COUNT + 2;
+ int REALM_FEATURE_COUNT = SECURITY_ELEMENT_FEATURE_COUNT + 6;
/**
* The feature id for the '<em><b>Annotations</b></em>' containment reference list.
@@ -252,13 +289,13 @@ public interface SecurityPackage extends EPackage
int ROLE__ID = SECURITY_ITEM_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Type</b></em>' attribute.
+ * The feature id for the '<em><b>Checks</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ROLE__TYPE = SECURITY_ITEM_FEATURE_COUNT + 2;
+ int ROLE__CHECKS = SECURITY_ITEM_FEATURE_COUNT + 2;
/**
* The number of structural features of the '<em>Role</em>' class.
@@ -571,6 +608,191 @@ public interface SecurityPackage extends EPackage
int USER_PASSWORD_FEATURE_COUNT = 1;
/**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.security.impl.CheckImpl <em>Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.CheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getCheck()
+ * @generated
+ */
+ int CHECK = 9;
+
+ /**
+ * The feature id for the '<em><b>Role</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHECK__ROLE = 0;
+
+ /**
+ * The feature id for the '<em><b>Permission</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHECK__PERMISSION = 1;
+
+ /**
+ * The number of structural features of the '<em>Check</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHECK_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.security.impl.ClassCheckImpl <em>Class Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.ClassCheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getClassCheck()
+ * @generated
+ */
+ int CLASS_CHECK = 10;
+
+ /**
+ * The feature id for the '<em><b>Role</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_CHECK__ROLE = CHECK__ROLE;
+
+ /**
+ * The feature id for the '<em><b>Permission</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_CHECK__PERMISSION = CHECK__PERMISSION;
+
+ /**
+ * The feature id for the '<em><b>Classes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_CHECK__CLASSES = CHECK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Class Check</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_CHECK_FEATURE_COUNT = CHECK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.security.impl.PackageCheckImpl <em>Package Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.PackageCheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getPackageCheck()
+ * @generated
+ */
+ int PACKAGE_CHECK = 11;
+
+ /**
+ * The feature id for the '<em><b>Role</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE_CHECK__ROLE = CHECK__ROLE;
+
+ /**
+ * The feature id for the '<em><b>Permission</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE_CHECK__PERMISSION = CHECK__PERMISSION;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE_CHECK__PACKAGES = CHECK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Package Check</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PACKAGE_CHECK_FEATURE_COUNT = CHECK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.security.impl.ResourceCheckImpl <em>Resource Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.ResourceCheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getResourceCheck()
+ * @generated
+ */
+ int RESOURCE_CHECK = 12;
+
+ /**
+ * The feature id for the '<em><b>Role</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_CHECK__ROLE = CHECK__ROLE;
+
+ /**
+ * The feature id for the '<em><b>Permission</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_CHECK__PERMISSION = CHECK__PERMISSION;
+
+ /**
+ * The feature id for the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_CHECK__PATTERN = CHECK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Resource Check</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_CHECK_FEATURE_COUNT = CHECK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.security.Permission <em>Permission</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.Permission
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getPermission()
+ * @generated
+ */
+ int PERMISSION = 13;
+
+ /**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.security.SecurityElement <em>Element</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -602,6 +824,50 @@ public interface SecurityPackage extends EPackage
EReference getRealm_Items();
/**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.Realm#getAllUsers <em>All Users</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>All Users</em>'.
+ * @see org.eclipse.emf.cdo.security.Realm#getAllUsers()
+ * @see #getRealm()
+ * @generated
+ */
+ EReference getRealm_AllUsers();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.Realm#getAllGroups <em>All Groups</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>All Groups</em>'.
+ * @see org.eclipse.emf.cdo.security.Realm#getAllGroups()
+ * @see #getRealm()
+ * @generated
+ */
+ EReference getRealm_AllGroups();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.Realm#getAllRoles <em>All Roles</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>All Roles</em>'.
+ * @see org.eclipse.emf.cdo.security.Realm#getAllRoles()
+ * @see #getRealm()
+ * @generated
+ */
+ EReference getRealm_AllRoles();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.Realm#getAllChecks <em>All Checks</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>All Checks</em>'.
+ * @see org.eclipse.emf.cdo.security.Realm#getAllChecks()
+ * @see #getRealm()
+ * @generated
+ */
+ EReference getRealm_AllChecks();
+
+ /**
* Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.security.Realm#getName <em>Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -687,15 +953,15 @@ public interface SecurityPackage extends EPackage
EAttribute getRole_Id();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.security.Role#getType <em>Type</em>}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.security.Role#getChecks <em>Checks</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Type</em>'.
- * @see org.eclipse.emf.cdo.security.Role#getType()
+ * @return the meta object for the containment reference list '<em>Checks</em>'.
+ * @see org.eclipse.emf.cdo.security.Role#getChecks()
* @see #getRole()
* @generated
*/
- EAttribute getRole_Type();
+ EReference getRole_Checks();
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.security.Assignee <em>Assignee</em>}'.
@@ -936,6 +1202,111 @@ public interface SecurityPackage extends EPackage
EAttribute getUserPassword_Encrypted();
/**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.security.Check <em>Check</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Check</em>'.
+ * @see org.eclipse.emf.cdo.security.Check
+ * @generated
+ */
+ EClass getCheck();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.security.Check#getRole <em>Role</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Role</em>'.
+ * @see org.eclipse.emf.cdo.security.Check#getRole()
+ * @see #getCheck()
+ * @generated
+ */
+ EReference getCheck_Role();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.security.Check#getPermission <em>Permission</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Permission</em>'.
+ * @see org.eclipse.emf.cdo.security.Check#getPermission()
+ * @see #getCheck()
+ * @generated
+ */
+ EAttribute getCheck_Permission();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.security.ClassCheck <em>Class Check</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Class Check</em>'.
+ * @see org.eclipse.emf.cdo.security.ClassCheck
+ * @generated
+ */
+ EClass getClassCheck();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.ClassCheck#getClasses <em>Classes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Classes</em>'.
+ * @see org.eclipse.emf.cdo.security.ClassCheck#getClasses()
+ * @see #getClassCheck()
+ * @generated
+ */
+ EReference getClassCheck_Classes();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.security.PackageCheck <em>Package Check</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Package Check</em>'.
+ * @see org.eclipse.emf.cdo.security.PackageCheck
+ * @generated
+ */
+ EClass getPackageCheck();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.security.PackageCheck#getPackages <em>Packages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Packages</em>'.
+ * @see org.eclipse.emf.cdo.security.PackageCheck#getPackages()
+ * @see #getPackageCheck()
+ * @generated
+ */
+ EReference getPackageCheck_Packages();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.security.ResourceCheck <em>Resource Check</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Resource Check</em>'.
+ * @see org.eclipse.emf.cdo.security.ResourceCheck
+ * @generated
+ */
+ EClass getResourceCheck();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.security.ResourceCheck#getPattern <em>Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pattern</em>'.
+ * @see org.eclipse.emf.cdo.security.ResourceCheck#getPattern()
+ * @see #getResourceCheck()
+ * @generated
+ */
+ EAttribute getResourceCheck_Pattern();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.cdo.security.Permission <em>Permission</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Permission</em>'.
+ * @see org.eclipse.emf.cdo.security.Permission
+ * @generated
+ */
+ EEnum getPermission();
+
+ /**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -987,6 +1358,38 @@ public interface SecurityPackage extends EPackage
EReference REALM__ITEMS = eINSTANCE.getRealm_Items();
/**
+ * The meta object literal for the '<em><b>All Users</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REALM__ALL_USERS = eINSTANCE.getRealm_AllUsers();
+
+ /**
+ * The meta object literal for the '<em><b>All Groups</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REALM__ALL_GROUPS = eINSTANCE.getRealm_AllGroups();
+
+ /**
+ * The meta object literal for the '<em><b>All Roles</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REALM__ALL_ROLES = eINSTANCE.getRealm_AllRoles();
+
+ /**
+ * The meta object literal for the '<em><b>All Checks</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REALM__ALL_CHECKS = eINSTANCE.getRealm_AllChecks();
+
+ /**
* The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1057,12 +1460,12 @@ public interface SecurityPackage extends EPackage
EAttribute ROLE__ID = eINSTANCE.getRole_Id();
/**
- * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Checks</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute ROLE__TYPE = eINSTANCE.getRole_Type();
+ EReference ROLE__CHECKS = eINSTANCE.getRole_Checks();
/**
* The meta object literal for the '{@link org.eclipse.emf.cdo.security.impl.AssigneeImpl <em>Assignee</em>}' class.
@@ -1248,6 +1651,96 @@ public interface SecurityPackage extends EPackage
*/
EAttribute USER_PASSWORD__ENCRYPTED = eINSTANCE.getUserPassword_Encrypted();
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.security.impl.CheckImpl <em>Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.CheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getCheck()
+ * @generated
+ */
+ EClass CHECK = eINSTANCE.getCheck();
+
+ /**
+ * The meta object literal for the '<em><b>Role</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CHECK__ROLE = eINSTANCE.getCheck_Role();
+
+ /**
+ * The meta object literal for the '<em><b>Permission</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CHECK__PERMISSION = eINSTANCE.getCheck_Permission();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.security.impl.ClassCheckImpl <em>Class Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.ClassCheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getClassCheck()
+ * @generated
+ */
+ EClass CLASS_CHECK = eINSTANCE.getClassCheck();
+
+ /**
+ * The meta object literal for the '<em><b>Classes</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CLASS_CHECK__CLASSES = eINSTANCE.getClassCheck_Classes();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.security.impl.PackageCheckImpl <em>Package Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.PackageCheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getPackageCheck()
+ * @generated
+ */
+ EClass PACKAGE_CHECK = eINSTANCE.getPackageCheck();
+
+ /**
+ * The meta object literal for the '<em><b>Packages</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PACKAGE_CHECK__PACKAGES = eINSTANCE.getPackageCheck_Packages();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.security.impl.ResourceCheckImpl <em>Resource Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.impl.ResourceCheckImpl
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getResourceCheck()
+ * @generated
+ */
+ EClass RESOURCE_CHECK = eINSTANCE.getResourceCheck();
+
+ /**
+ * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RESOURCE_CHECK__PATTERN = eINSTANCE.getResourceCheck_Pattern();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.security.Permission <em>Permission</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.security.Permission
+ * @see org.eclipse.emf.cdo.security.impl.SecurityPackageImpl#getPermission()
+ * @generated
+ */
+ EEnum PERMISSION = eINSTANCE.getPermission();
+
}
} // SecurityPackage
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java
new file mode 100644
index 0000000000..641b0eab43
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java
@@ -0,0 +1,102 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.impl;
+
+import org.eclipse.emf.cdo.security.Check;
+import org.eclipse.emf.cdo.security.Permission;
+import org.eclipse.emf.cdo.security.Role;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.internal.cdo.CDOObjectImpl;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Check</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.CheckImpl#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.CheckImpl#getPermission <em>Permission</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CheckImpl extends CDOObjectImpl implements Check
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CheckImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SecurityPackage.Literals.CHECK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected int eStaticFeatureCount()
+ {
+ return 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Role getRole()
+ {
+ return (Role)eGet(SecurityPackage.Literals.CHECK__ROLE, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRole(Role newRole)
+ {
+ eSet(SecurityPackage.Literals.CHECK__ROLE, newRole);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Permission getPermission()
+ {
+ return (Permission)eGet(SecurityPackage.Literals.CHECK__PERMISSION, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPermission(Permission newPermission)
+ {
+ eSet(SecurityPackage.Literals.CHECK__PERMISSION, newPermission);
+ }
+
+} // CheckImpl
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java
new file mode 100644
index 0000000000..b978875aa1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java
@@ -0,0 +1,58 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.impl;
+
+import org.eclipse.emf.cdo.security.ClassCheck;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Class Check</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.ClassCheckImpl#getClasses <em>Classes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassCheckImpl extends CheckImpl implements ClassCheck
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassCheckImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SecurityPackage.Literals.CLASS_CHECK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<EClass> getClasses()
+ {
+ return (EList<EClass>)eGet(SecurityPackage.Literals.CLASS_CHECK__CLASSES, true);
+ }
+
+} // ClassCheckImpl
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java
new file mode 100644
index 0000000000..c2f4bea543
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java
@@ -0,0 +1,59 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.impl;
+
+import org.eclipse.emf.cdo.security.PackageCheck;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Package Check</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.PackageCheckImpl#getPackages <em>Packages</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PackageCheckImpl extends CheckImpl implements PackageCheck
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackageCheckImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SecurityPackage.Literals.PACKAGE_CHECK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<EPackage> getPackages()
+ {
+ return (EList<EPackage>)eGet(SecurityPackage.Literals.PACKAGE_CHECK__PACKAGES, true);
+ }
+
+} // PackageCheckImpl
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RealmImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RealmImpl.java
index d9fff79b5e..433d19737a 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RealmImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RealmImpl.java
@@ -10,12 +10,19 @@
*/
package org.eclipse.emf.cdo.security.impl;
+import org.eclipse.emf.cdo.security.Check;
+import org.eclipse.emf.cdo.security.Group;
import org.eclipse.emf.cdo.security.Realm;
+import org.eclipse.emf.cdo.security.RealmUtil;
+import org.eclipse.emf.cdo.security.Role;
import org.eclipse.emf.cdo.security.SecurityItem;
import org.eclipse.emf.cdo.security.SecurityPackage;
+import org.eclipse.emf.cdo.security.User;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
/**
* <!-- begin-user-doc -->
@@ -25,6 +32,10 @@ import org.eclipse.emf.ecore.EClass;
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.emf.cdo.security.impl.RealmImpl#getItems <em>Items</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.RealmImpl#getAllUsers <em>All Users</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.RealmImpl#getAllGroups <em>All Groups</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.RealmImpl#getAllRoles <em>All Roles</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.RealmImpl#getAllChecks <em>All Checks</em>}</li>
* <li>{@link org.eclipse.emf.cdo.security.impl.RealmImpl#getName <em>Name</em>}</li>
* </ul>
* </p>
@@ -33,6 +44,94 @@ import org.eclipse.emf.ecore.EClass;
*/
public class RealmImpl extends SecurityElementImpl implements Realm
{
+ private EList<User> allUsers = new CachedList<User>()
+ {
+ @Override
+ protected InternalEObject getOwner()
+ {
+ return RealmImpl.this;
+ }
+
+ @Override
+ protected EStructuralFeature getFeature()
+ {
+ return SecurityPackage.Literals.REALM__ALL_USERS;
+ }
+
+ @Override
+ protected Object[] getData()
+ {
+ EList<SecurityItem> items = getItems();
+ return RealmUtil.allUsers(items).data();
+ }
+ };
+
+ private EList<Group> allGroups = new CachedList<Group>()
+ {
+ @Override
+ protected InternalEObject getOwner()
+ {
+ return RealmImpl.this;
+ }
+
+ @Override
+ protected EStructuralFeature getFeature()
+ {
+ return SecurityPackage.Literals.REALM__ALL_GROUPS;
+ }
+
+ @Override
+ protected Object[] getData()
+ {
+ EList<SecurityItem> items = getItems();
+ return RealmUtil.allGroups(items).data();
+ }
+ };
+
+ private EList<Role> allRoles = new CachedList<Role>()
+ {
+ @Override
+ protected InternalEObject getOwner()
+ {
+ return RealmImpl.this;
+ }
+
+ @Override
+ protected EStructuralFeature getFeature()
+ {
+ return SecurityPackage.Literals.REALM__ALL_ROLES;
+ }
+
+ @Override
+ protected Object[] getData()
+ {
+ EList<SecurityItem> items = getItems();
+ return RealmUtil.allRoles(items).data();
+ }
+ };
+
+ private EList<Check> allChecks = new CachedList<Check>()
+ {
+ @Override
+ protected InternalEObject getOwner()
+ {
+ return RealmImpl.this;
+ }
+
+ @Override
+ protected EStructuralFeature getFeature()
+ {
+ return SecurityPackage.Literals.REALM__ALL_CHECKS;
+ }
+
+ @Override
+ protected Object[] getData()
+ {
+ EList<SecurityItem> items = getItems();
+ return RealmUtil.allChecks(items).data();
+ }
+ };
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -68,6 +167,46 @@ public class RealmImpl extends SecurityElementImpl implements Realm
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<User> getAllUsers()
+ {
+ return allUsers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<Group> getAllGroups()
+ {
+ return allGroups;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<Role> getAllRoles()
+ {
+ return allRoles;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<Check> getAllChecks()
+ {
+ return allChecks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
public String getName()
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java
new file mode 100644
index 0000000000..16b64de451
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java
@@ -0,0 +1,66 @@
+/**
+ */
+package org.eclipse.emf.cdo.security.impl;
+
+import org.eclipse.emf.cdo.security.ResourceCheck;
+import org.eclipse.emf.cdo.security.SecurityPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Resource Check</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.ResourceCheckImpl#getPattern <em>Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ResourceCheckImpl extends CheckImpl implements ResourceCheck
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ResourceCheckImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SecurityPackage.Literals.RESOURCE_CHECK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPattern()
+ {
+ return (String)eGet(SecurityPackage.Literals.RESOURCE_CHECK__PATTERN, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPattern(String newPattern)
+ {
+ eSet(SecurityPackage.Literals.RESOURCE_CHECK__PATTERN, newPattern);
+ }
+
+} // ResourceCheckImpl
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RoleImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RoleImpl.java
index 091bb3bac6..c660d8dfff 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RoleImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/RoleImpl.java
@@ -11,6 +11,7 @@
package org.eclipse.emf.cdo.security.impl;
import org.eclipse.emf.cdo.security.Assignee;
+import org.eclipse.emf.cdo.security.Check;
import org.eclipse.emf.cdo.security.Role;
import org.eclipse.emf.cdo.security.SecurityPackage;
@@ -26,7 +27,7 @@ import org.eclipse.emf.ecore.EClass;
* <ul>
* <li>{@link org.eclipse.emf.cdo.security.impl.RoleImpl#getAssignees <em>Assignees</em>}</li>
* <li>{@link org.eclipse.emf.cdo.security.impl.RoleImpl#getId <em>Id</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.security.impl.RoleImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.security.impl.RoleImpl#getChecks <em>Checks</em>}</li>
* </ul>
* </p>
*
@@ -91,19 +92,10 @@ public class RoleImpl extends SecurityItemImpl implements Role
* <!-- end-user-doc -->
* @generated
*/
- public String getType()
- {
- return (String)eGet(SecurityPackage.Literals.ROLE__TYPE, true);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setType(String newType)
+ @SuppressWarnings("unchecked")
+ public EList<Check> getChecks()
{
- eSet(SecurityPackage.Literals.ROLE__TYPE, newType);
+ return (EList<Check>)eGet(SecurityPackage.Literals.ROLE__CHECKS, true);
}
} // RoleImpl
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityFactoryImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityFactoryImpl.java
index e2eb2a9ad2..dceacf8f9b 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityFactoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityFactoryImpl.java
@@ -11,9 +11,13 @@
package org.eclipse.emf.cdo.security.impl;
//import org.eclipse.emf.cdo.security.*;
+import org.eclipse.emf.cdo.security.ClassCheck;
import org.eclipse.emf.cdo.security.Directory;
import org.eclipse.emf.cdo.security.Group;
+import org.eclipse.emf.cdo.security.PackageCheck;
+import org.eclipse.emf.cdo.security.Permission;
import org.eclipse.emf.cdo.security.Realm;
+import org.eclipse.emf.cdo.security.ResourceCheck;
import org.eclipse.emf.cdo.security.Role;
import org.eclipse.emf.cdo.security.SecurityFactory;
import org.eclipse.emf.cdo.security.SecurityPackage;
@@ -21,6 +25,7 @@ import org.eclipse.emf.cdo.security.User;
import org.eclipse.emf.cdo.security.UserPassword;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
@@ -91,6 +96,12 @@ public class SecurityFactoryImpl extends EFactoryImpl implements SecurityFactory
return (EObject)createUser();
case SecurityPackage.USER_PASSWORD:
return (EObject)createUserPassword();
+ case SecurityPackage.CLASS_CHECK:
+ return (EObject)createClassCheck();
+ case SecurityPackage.PACKAGE_CHECK:
+ return (EObject)createPackageCheck();
+ case SecurityPackage.RESOURCE_CHECK:
+ return (EObject)createResourceCheck();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -101,6 +112,40 @@ public class SecurityFactoryImpl extends EFactoryImpl implements SecurityFactory
* <!-- end-user-doc -->
* @generated
*/
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case SecurityPackage.PERMISSION:
+ return createPermissionFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case SecurityPackage.PERMISSION:
+ return convertPermissionToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public Realm createRealm()
{
RealmImpl realm = new RealmImpl();
@@ -167,6 +212,63 @@ public class SecurityFactoryImpl extends EFactoryImpl implements SecurityFactory
* <!-- end-user-doc -->
* @generated
*/
+ public ClassCheck createClassCheck()
+ {
+ ClassCheckImpl classCheck = new ClassCheckImpl();
+ return classCheck;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageCheck createPackageCheck()
+ {
+ PackageCheckImpl packageCheck = new PackageCheckImpl();
+ return packageCheck;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceCheck createResourceCheck()
+ {
+ ResourceCheckImpl resourceCheck = new ResourceCheckImpl();
+ return resourceCheck;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Permission createPermissionFromString(EDataType eDataType, String initialValue)
+ {
+ Permission result = Permission.get(initialValue);
+ if (result == null)
+ throw new IllegalArgumentException(
+ "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPermissionToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public SecurityPackage getSecurityPackage()
{
return (SecurityPackage)getEPackage();
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java
index e230d2da94..44d5687591 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/SecurityPackageImpl.java
@@ -12,9 +12,14 @@ package org.eclipse.emf.cdo.security.impl;
import org.eclipse.emf.cdo.etypes.EtypesPackage;
import org.eclipse.emf.cdo.security.Assignee;
+import org.eclipse.emf.cdo.security.Check;
+import org.eclipse.emf.cdo.security.ClassCheck;
import org.eclipse.emf.cdo.security.Directory;
import org.eclipse.emf.cdo.security.Group;
+import org.eclipse.emf.cdo.security.PackageCheck;
+import org.eclipse.emf.cdo.security.Permission;
import org.eclipse.emf.cdo.security.Realm;
+import org.eclipse.emf.cdo.security.ResourceCheck;
import org.eclipse.emf.cdo.security.Role;
import org.eclipse.emf.cdo.security.SecurityElement;
import org.eclipse.emf.cdo.security.SecurityFactory;
@@ -25,6 +30,7 @@ import org.eclipse.emf.cdo.security.UserPassword;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;
@@ -102,6 +108,41 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
private EClass userPasswordEClass = null;
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass checkEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classCheckEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass packageCheckEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass resourceCheckEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum permissionEEnum = null;
+
+ /**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
@@ -203,9 +244,49 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
* <!-- end-user-doc -->
* @generated
*/
+ public EReference getRealm_AllUsers()
+ {
+ return (EReference)realmEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRealm_AllGroups()
+ {
+ return (EReference)realmEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRealm_AllRoles()
+ {
+ return (EReference)realmEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRealm_AllChecks()
+ {
+ return (EReference)realmEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EAttribute getRealm_Name()
{
- return (EAttribute)realmEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)realmEClass.getEStructuralFeatures().get(5);
}
/**
@@ -283,9 +364,9 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getRole_Type()
+ public EReference getRole_Checks()
{
- return (EAttribute)roleEClass.getEStructuralFeatures().get(2);
+ return (EReference)roleEClass.getEStructuralFeatures().get(2);
}
/**
@@ -513,6 +594,106 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
* <!-- end-user-doc -->
* @generated
*/
+ public EClass getCheck()
+ {
+ return checkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCheck_Role()
+ {
+ return (EReference)checkEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCheck_Permission()
+ {
+ return (EAttribute)checkEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassCheck()
+ {
+ return classCheckEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassCheck_Classes()
+ {
+ return (EReference)classCheckEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPackageCheck()
+ {
+ return packageCheckEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackageCheck_Packages()
+ {
+ return (EReference)packageCheckEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getResourceCheck()
+ {
+ return resourceCheckEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getResourceCheck_Pattern()
+ {
+ return (EAttribute)resourceCheckEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPermission()
+ {
+ return permissionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public SecurityFactory getSecurityFactory()
{
return (SecurityFactory)getEFactoryInstance();
@@ -545,6 +726,10 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
realmEClass = createEClass(REALM);
createEReference(realmEClass, REALM__ITEMS);
+ createEReference(realmEClass, REALM__ALL_USERS);
+ createEReference(realmEClass, REALM__ALL_GROUPS);
+ createEReference(realmEClass, REALM__ALL_ROLES);
+ createEReference(realmEClass, REALM__ALL_CHECKS);
createEAttribute(realmEClass, REALM__NAME);
directoryEClass = createEClass(DIRECTORY);
@@ -554,7 +739,7 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
roleEClass = createEClass(ROLE);
createEReference(roleEClass, ROLE__ASSIGNEES);
createEAttribute(roleEClass, ROLE__ID);
- createEAttribute(roleEClass, ROLE__TYPE);
+ createEReference(roleEClass, ROLE__CHECKS);
assigneeEClass = createEClass(ASSIGNEE);
createEReference(assigneeEClass, ASSIGNEE__ROLES);
@@ -581,6 +766,22 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
userPasswordEClass = createEClass(USER_PASSWORD);
createEAttribute(userPasswordEClass, USER_PASSWORD__ENCRYPTED);
+
+ checkEClass = createEClass(CHECK);
+ createEReference(checkEClass, CHECK__ROLE);
+ createEAttribute(checkEClass, CHECK__PERMISSION);
+
+ classCheckEClass = createEClass(CLASS_CHECK);
+ createEReference(classCheckEClass, CLASS_CHECK__CLASSES);
+
+ packageCheckEClass = createEClass(PACKAGE_CHECK);
+ createEReference(packageCheckEClass, PACKAGE_CHECK__PACKAGES);
+
+ resourceCheckEClass = createEClass(RESOURCE_CHECK);
+ createEAttribute(resourceCheckEClass, RESOURCE_CHECK__PATTERN);
+
+ // Create enums
+ permissionEEnum = createEEnum(PERMISSION);
}
/**
@@ -625,6 +826,9 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
assigneeEClass.getESuperTypes().add(this.getSecurityItem());
groupEClass.getESuperTypes().add(this.getAssignee());
userEClass.getESuperTypes().add(this.getAssignee());
+ classCheckEClass.getESuperTypes().add(this.getCheck());
+ packageCheckEClass.getESuperTypes().add(this.getCheck());
+ resourceCheckEClass.getESuperTypes().add(this.getCheck());
// Initialize classes and features; add operations and parameters
initEClass(securityElementEClass, SecurityElement.class,
@@ -641,6 +845,26 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
this.getSecurityItem(),
null,
"items", null, 0, -1, Realm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(
+ getRealm_AllUsers(),
+ this.getUser(),
+ null,
+ "allUsers", null, 0, -1, Realm.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(
+ getRealm_AllGroups(),
+ this.getGroup(),
+ null,
+ "allGroups", null, 0, -1, Realm.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(
+ getRealm_AllRoles(),
+ this.getRole(),
+ null,
+ "allRoles", null, 0, -1, Realm.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(
+ getRealm_AllChecks(),
+ this.getCheck(),
+ null,
+ "allChecks", null, 0, -1, Realm.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEAttribute(
getRealm_Name(),
theEcorePackage.getEString(),
@@ -667,10 +891,11 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
getRole_Id(),
theEcorePackage.getEString(),
"id", null, 0, 1, Role.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
- initEAttribute(
- getRole_Type(),
- theEcorePackage.getEString(),
- "type", null, 0, 1, Role.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(
+ getRole_Checks(),
+ this.getCheck(),
+ this.getCheck_Role(),
+ "checks", null, 0, -1, Role.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(assigneeEClass, Assignee.class, "Assignee", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(
@@ -764,6 +989,45 @@ public class SecurityPackageImpl extends EPackageImpl implements SecurityPackage
theEcorePackage.getEString(),
"encrypted", null, 0, 1, UserPassword.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(checkEClass, Check.class, "Check", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getCheck_Role(),
+ this.getRole(),
+ this.getRole_Checks(),
+ "role", null, 1, 1, Check.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getCheck_Permission(),
+ this.getPermission(),
+ "permission", "WRITE", 0, 1, Check.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+ initEClass(classCheckEClass, ClassCheck.class,
+ "ClassCheck", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getClassCheck_Classes(),
+ theEcorePackage.getEClass(),
+ null,
+ "classes", null, 1, -1, ClassCheck.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(packageCheckEClass, PackageCheck.class,
+ "PackageCheck", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(
+ getPackageCheck_Packages(),
+ theEcorePackage.getEPackage(),
+ null,
+ "packages", null, 1, -1, PackageCheck.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(resourceCheckEClass, ResourceCheck.class,
+ "ResourceCheck", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(
+ getResourceCheck_Pattern(),
+ theEcorePackage.getEString(),
+ "pattern", null, 0, 1, ResourceCheck.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(permissionEEnum, Permission.class, "Permission"); //$NON-NLS-1$
+ addEEnumLiteral(permissionEEnum, Permission.READ);
+ addEEnumLiteral(permissionEEnum, Permission.WRITE);
+
// Create resource
createResource(eNS_URI);
}
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecurityAdapterFactory.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecurityAdapterFactory.java
index 35cfea28c1..8b950dad0a 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecurityAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecurityAdapterFactory.java
@@ -12,9 +12,13 @@ package org.eclipse.emf.cdo.security.util;
import org.eclipse.emf.cdo.etypes.ModelElement;
import org.eclipse.emf.cdo.security.Assignee;
+import org.eclipse.emf.cdo.security.Check;
+import org.eclipse.emf.cdo.security.ClassCheck;
import org.eclipse.emf.cdo.security.Directory;
import org.eclipse.emf.cdo.security.Group;
+import org.eclipse.emf.cdo.security.PackageCheck;
import org.eclipse.emf.cdo.security.Realm;
+import org.eclipse.emf.cdo.security.ResourceCheck;
import org.eclipse.emf.cdo.security.Role;
import org.eclipse.emf.cdo.security.SecurityElement;
import org.eclipse.emf.cdo.security.SecurityItem;
@@ -146,6 +150,30 @@ public class SecurityAdapterFactory extends AdapterFactoryImpl
}
@Override
+ public Adapter caseCheck(Check object)
+ {
+ return createCheckAdapter();
+ }
+
+ @Override
+ public Adapter caseClassCheck(ClassCheck object)
+ {
+ return createClassCheckAdapter();
+ }
+
+ @Override
+ public Adapter casePackageCheck(PackageCheck object)
+ {
+ return createPackageCheckAdapter();
+ }
+
+ @Override
+ public Adapter caseResourceCheck(ResourceCheck object)
+ {
+ return createResourceCheckAdapter();
+ }
+
+ @Override
public Adapter caseModelElement(ModelElement object)
{
return createModelElementAdapter();
@@ -308,6 +336,66 @@ public class SecurityAdapterFactory extends AdapterFactoryImpl
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.security.Check <em>Check</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.security.Check
+ * @generated
+ */
+ public Adapter createCheckAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.security.ClassCheck <em>Class Check</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.security.ClassCheck
+ * @generated
+ */
+ public Adapter createClassCheckAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.security.PackageCheck <em>Package Check</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.security.PackageCheck
+ * @generated
+ */
+ public Adapter createPackageCheckAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.security.ResourceCheck <em>Resource Check</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.security.ResourceCheck
+ * @generated
+ */
+ public Adapter createResourceCheckAdapter()
+ {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.etypes.ModelElement <em>Model Element</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecuritySwitch.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecuritySwitch.java
index 02ca779e9e..973dae5fc1 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecuritySwitch.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/util/SecuritySwitch.java
@@ -12,9 +12,13 @@ package org.eclipse.emf.cdo.security.util;
import org.eclipse.emf.cdo.etypes.ModelElement;
import org.eclipse.emf.cdo.security.Assignee;
+import org.eclipse.emf.cdo.security.Check;
+import org.eclipse.emf.cdo.security.ClassCheck;
import org.eclipse.emf.cdo.security.Directory;
import org.eclipse.emf.cdo.security.Group;
+import org.eclipse.emf.cdo.security.PackageCheck;
import org.eclipse.emf.cdo.security.Realm;
+import org.eclipse.emf.cdo.security.ResourceCheck;
import org.eclipse.emf.cdo.security.Role;
import org.eclipse.emf.cdo.security.SecurityElement;
import org.eclipse.emf.cdo.security.SecurityItem;
@@ -225,6 +229,44 @@ public class SecuritySwitch<T>
result = defaultCase(theEObject);
return result;
}
+ case SecurityPackage.CHECK:
+ {
+ Check check = (Check)theEObject;
+ T result = caseCheck(check);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SecurityPackage.CLASS_CHECK:
+ {
+ ClassCheck classCheck = (ClassCheck)theEObject;
+ T result = caseClassCheck(classCheck);
+ if (result == null)
+ result = caseCheck(classCheck);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SecurityPackage.PACKAGE_CHECK:
+ {
+ PackageCheck packageCheck = (PackageCheck)theEObject;
+ T result = casePackageCheck(packageCheck);
+ if (result == null)
+ result = caseCheck(packageCheck);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SecurityPackage.RESOURCE_CHECK:
+ {
+ ResourceCheck resourceCheck = (ResourceCheck)theEObject;
+ T result = caseResourceCheck(resourceCheck);
+ if (result == null)
+ result = caseCheck(resourceCheck);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
default:
return defaultCase(theEObject);
}
@@ -375,6 +417,70 @@ public class SecuritySwitch<T>
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Check</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Check</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCheck(Check object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Class Check</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Class Check</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseClassCheck(ClassCheck object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Package Check</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Package Check</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePackageCheck(PackageCheck object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource Check</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Resource Check</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseResourceCheck(ResourceCheck object)
+ {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Model Element</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java
index 6fdc5ecdf6..e02de42f08 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java
@@ -414,19 +414,6 @@ public class SecurityManager implements ISecurityManager
*/
private final class WriteAccessHandler implements IRepository.WriteAccessHandler
{
- private void handleRevisionsBeforeCommitting(CommitContext commitContext, CDOBranchPoint securityContext,
- User user, InternalCDORevision[] revisions)
- {
- for (InternalCDORevision revision : revisions)
- {
- CDOPermission permission = getPermission(revision, commitContext, securityContext, user);
- if (permission != CDOPermission.WRITE)
- {
- throw new SecurityException("User " + user + " is not allowed to write to " + revision);
- }
- }
- }
-
public void handleTransactionBeforeCommitting(ITransaction transaction, CommitContext commitContext,
OMMonitor monitor) throws RuntimeException
{
@@ -450,9 +437,25 @@ public class SecurityManager implements ISecurityManager
handleRevisionsBeforeCommitting(commitContext, securityContext, user, commitContext.getDirtyObjects());
}
+ private void handleRevisionsBeforeCommitting(CommitContext commitContext, CDOBranchPoint securityContext,
+ User user, InternalCDORevision[] revisions)
+ {
+ for (InternalCDORevision revision : revisions)
+ {
+ CDOPermission permission = getPermission(revision, commitContext, securityContext, user);
+ if (permission != CDOPermission.WRITE)
+ {
+ throw new SecurityException("User " + user + " is not allowed to write to " + revision);
+ }
+ }
+ }
+
+ /**
+ * @deprecated Not used.
+ */
+ @Deprecated
public void handleTransactionAfterCommitted(ITransaction transaction, CommitContext commitContext, OMMonitor monitor)
{
- // Do nothing
}
}
}
diff --git a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddies.gif b/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddies.gif
deleted file mode 100644
index 952ed084bd..0000000000
--- a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddies.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddy.gif b/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddy.gif
deleted file mode 100644
index 5eed04350e..0000000000
--- a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/buddy.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/folder.gif b/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/folder.gif
deleted file mode 100644
index 42e027c933..0000000000
--- a/plugins/org.eclipse.net4j.ui.shared/icons/full/obj16/folder.gif
+++ /dev/null
Binary files differ

Back to the top