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

📄 sipcallpermissioncollection.java

📁 First of all, the Applet-phone is a SIP User-Agent with audio and text messaging capabilities. But
💻 JAVA
字号:
/* * SipCallPermissionCollection.java * * Created on June 18, 2003, 10:27 AM */package gov.nist.security.permissions;import java.security.*;import java.util.*;/** * Class representing a collection of SipCallPermission * @author  DERUELLE Jean */public class SipCallPermissionCollection extends PermissionCollection {    /**set of SipCallPermissions*/    private Hashtable permissions;    private boolean addedAdmin;    /**mask of the actions*/    private int adminMask;        /**      * Creates a new instance of SipCallPermissionCollection     */    SipCallPermissionCollection() {            permissions = new Hashtable();            addedAdmin = false;    }    /**     * Add a permission to the existing set of permission     * @param p - the permission to add     */    public void add(Permission p) {            if (!(p instanceof SipCallPermission))                    throw new IllegalArgumentException("Wrong permission type");            SipCallPermission sipCallPermission = (SipCallPermission) p;            String name = sipCallPermission.getName();            SipCallPermission other =(SipCallPermission) permissions.get(name);            if (other != null)                    sipCallPermission = merge(sipCallPermission, other);            if (name.equals("*")) {                    addedAdmin = true;                    adminMask = sipCallPermission.mask;            }            permissions.put(name, sipCallPermission);    }    /**     * return the permissions of the collection     * @return the permissions of the collection     */    public Enumeration elements() {            return permissions.elements();    }    /**     * Checks if the specified permission's actions are "implied by" this object's actions.     * @param p - the permission to check against.     * @return if the specified permission is implied by this object, false if not.      */    public boolean implies(Permission p) {            if (!(p instanceof SipCallPermission))                    return false;            SipCallPermission sipCallPermission = (SipCallPermission) p;            if (addedAdmin && (adminMask & sipCallPermission.mask) == sipCallPermission.mask)                    return true;            Permission inTable = (Permission)permissions.get(sipCallPermission.getName());            if (inTable == null)                    return false;            return inTable.implies(sipCallPermission);    }    /**     * merge the two permissions     * @param a - permssion to merge     * @param b - permission to merge     * @return the new permission created on the merging of the two permissions     */    private SipCallPermission merge(SipCallPermission a, SipCallPermission b) {            String aAction = a.getActions();            if (aAction.equals(""))                    return b;            String bAction = b.getActions();            if (bAction.equals(""))                    return a;            return new SipCallPermission(a.getName(),aAction + "," + bAction);    }}

⌨️ 快捷键说明

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