Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java137
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 &quot;user.anyone&quot;, 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));
- }
-
-}

Back to the top