⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roleimpl.java

📁 OSGI这是一个中间件,与UPNP齐名,是用于移植到嵌入式平台之上
💻 JAVA
字号:
/* * Copyright (c) 2003, KNOPFLERFISH project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above copyright *   notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above *   copyright notice, this list of conditions and the following *   disclaimer in the documentation and/or other materials *   provided with the distribution. * * - Neither the name of the KNOPFLERFISH project nor the names of its *   contributors may be used to endorse or promote products derived *   from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */package org.knopflerfish.service.um.useradmin.impl;import java.util.Dictionary;import java.util.Enumeration;import java.util.Vector;import org.osgi.service.useradmin.Role;/** * Implementation of Role. *  * @author Gatespace AB * @version $Revision: 1.1.1.1 $ */class RoleImpl implements Role {    UserAdminImpl uai;    Vector /* RoleImpl */basicMemberOf = new Vector();    Vector /* RoleImpl */reqMemberOf = new Vector();    protected String name;    protected UAProperties props;    RoleImpl(String name, UserAdminImpl uai) {        this.uai = uai;        this.name = name;        props = new UAProperties(this);    }    /**     * Checks if this role implies the specified role.     *      * @param roleName     *            the role to check for     * @param user     *            the user that is being checked     * @param context     *            the context of the check     * @param visited     *            list of already examined roles, to detect loops in the db     *      * @return true if this role implies the specified role.     */    boolean hasRole(String roleName, String user, Dictionary context,            Vector visited) {        // System.out.print( name + "-Role.hasRole roleName: " + roleName );        // System.out.print( " user: " + user );        // System.out.println( " visited: " + visited );        // role always implies itself        if (name.equals(roleName)) {            return true;        }        // check if any basic parent has the role        for (Enumeration en = basicMemberOf.elements(); en.hasMoreElements();) {            RoleImpl parentGroup = (RoleImpl) en.nextElement();            if (parentGroup.hasRole(roleName, user, context, visited)) {                return true;            }        }        // check if the predefined role has the role        if (!name.equals(UserAdminImpl.ANYONE))            if (uai.anyone.hasRole(roleName, user, context, visited))                return true;        return false;    }    /**     * Checks if the specified role is implied by this role.     *      * @param user     *            the user that is being checked     * @param context     *            the context of the check     * @param visited     *            list of already examined roles, to detect loops in the db     *      * @return true if the specified role is a valid member of this role.     */    boolean hasMember(String user, Dictionary context, Vector visited) {        // System.out.print( name + "-Role.hasMember user: " + user );        // System.out.println( " visited: " + visited );        if (name.equals(user) || name.equals(UserAdminImpl.ANYONE)) {            return true;        }        return false;    }    /**     * Called to remove this role from the user database. This role is removed     * as a member of any basic or required parent group.     */    void remove() {        for (Enumeration en = basicMemberOf.elements(); en.hasMoreElements();) {            GroupImpl parentGroup = (GroupImpl) en.nextElement();            parentGroup.removeMember(this);        }        for (Enumeration en = reqMemberOf.elements(); en.hasMoreElements();) {            GroupImpl parentGroup = (GroupImpl) en.nextElement();            parentGroup.removeMember(this);        }    }    public String toString() {        return name;    }    // - interface org.osgi.service.useradmin.Role    // ------------------------------    public String getName() {        return name;    }    public int getType() {        return Role.ROLE;    }    public Dictionary getProperties() {        return props;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -