diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/useradmin/Role.java')
-rw-r--r-- | bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/useradmin/Role.java | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/useradmin/Role.java b/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/useradmin/Role.java deleted file mode 100644 index 68c13e42f..000000000 --- a/bundles/org.eclipse.equinox.useradmin/src/org/eclipse/equinox/useradmin/Role.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.equinox.useradmin; - -import java.util.*; - -/** - * The base interface for Role objects managed by the {@link UserAdmin} - * service. - * <p> - * This interface exposes the characteristics shared by all Roles: a name, - * a type, and a set of properties. - * <p> - * Properties represent public information about the Role that can be read by - * anyone. Specific {@link UserAdminPermission}s are required to - * change a Role's properties. - * <p> - * Role properties are Dictionary objects. Changes to - * these objects are propagated to the {@link UserAdmin} service and - * made persistent. - * <p> - * Every UserAdmin contains a set of predefined roles that are always present - * and cannot be removed. All predefined roles are of type <tt>ROLE</tt>. - * This version of the <tt>org.osgi.service.useradmin</tt> package defines a - * single predefined role named "user.anyone", which is inherited - * by any other role. Other predefined roles may be added in the future. - */ - -public class Role implements org.osgi.service.useradmin.Role { - - protected String name; - protected UserAdminHashtable properties; - protected Vector impliedRoles; - protected UserAdmin useradmin; - protected static final String anyoneString = "user.anyone"; //$NON-NLS-1$ - protected boolean exists = true; - - protected Role(String name, UserAdmin useradmin) { - this.name = name; - this.properties = new UserAdminHashtable(this, useradmin, UserAdminHashtable.PROPERTIES); - this.useradmin = useradmin; - - // This is used only to track which Groups this role is directly a member of. - // This info is needed so when we delete a Role, we know which groups to remove - // it from. - impliedRoles = new Vector(); - } - - /** - * Returns the name of this role. - * - * @return The role's name. - */ - - public String getName() { - useradmin.checkAlive(); - return (name); - } - - /** - * Returns the type of this role. - * - * @return The role's type. - */ - public int getType() { - useradmin.checkAlive(); - return (org.osgi.service.useradmin.Role.ROLE); - } - - /** - * Returns a Dictionary of the (public) properties of this Role. Any changes - * to the returned Dictionary will change the properties of this Role. This - * will cause a UserAdminEvent of type {@link UserAdminEvent#ROLE_CHANGED} - * to be broadcast to any UserAdminListeners. - * <p> - * Only objects of type <tt>String</tt> may be used as property keys, and - * only objects of type <tt>String</tt> or <tt>byte[]</tt> - * may be used as property values. - * Any other types will cause an exception of type - * <tt>IllegalArgumentException</tt> to be raised. - * <p> - * In order to add, change, or remove a property in the returned Dictionary, - * a {@link UserAdminPermission} named after the property name (or - * a prefix of it) with action <code>changeProperty</code> is required. - * - * @return Dictionary containing the properties of this Role. - */ - public Dictionary getProperties() { - useradmin.checkAlive(); - return (properties); - } - - protected void addImpliedRole(Group group) { - impliedRoles.addElement(group); - } - - protected void removeImpliedRole(Group group) { - if (exists) //this prevents a loop when destroy is called - { - impliedRoles.removeElement(group); - } - } - - //we are being deleted so delete ourselves from all of the groups - protected synchronized void destroy() { - exists = false; - Enumeration e = impliedRoles.elements(); - while (e.hasMoreElements()) { - Group group = (Group) e.nextElement(); - if (group.exists) //so we don't try to remove any groups twice from storage - { - group.removeMember(this); - } - } - properties = null; - impliedRoles = null; - } - - protected boolean isImpliedBy(Role role, Vector checkLoop) { //Roles do not imply themselves - //The user.anyone role is always implied - if (checkLoop.contains(name)) { - //we have a circular dependency - return (false); - } - checkLoop.addElement(name); - return (name.equals(Role.anyoneString)); - } - -} |