JavaTM 2 Platform
Standard Ed. 6

java.security
類別 PermissionCollection

java.lang.Object
  繼承者 java.security.PermissionCollection
所有已實作的介面:
Serializable
直接已知子類別:
Permissions

public abstract class PermissionCollection
extends Object
implements Serializable

表示 Permission 物件集合的抽象類別。

使用 PermissionCollection,您可以:

當需要集合許多相同型別的 Permission 物件時,首先應該調用該特定 Permission 物件型別上的 newPermissionCollection 方法。預設的行為(來自 Permission 類別)只是返回 null。如果 Permission 類別的子類別需要在一個特定的 PermissionCollection 物件中存儲其權限,以便調用 PermissionCollection.implies 方法時能提供正確的語義,則它們應該覆寫此方法。如果返回非 null 值,一定要使用該 PermissionCollection。如果返回 null,那麼 newPermissionCollection 的調用方可以在任何它們選擇的 PermissionCollection(使用 Hashtable 的,使用 Vector 的,等等)中隨意存儲給定型別的權限。

Permission.newPermissionCollection 方法返回的 PermissionCollection 是同類別的集合,它們只存儲給定 Permission 型別的 Permission 物件。PermissionCollection 也可以是不同種類別的。例如,Permissions 是 PermissionCollection 的子類別,表示 PermissionCollection 的集合。也就是說,它的每一個成員是一個同類別的 PermissionCollection。例如,一個 Permissions 物件可能有一個用於所有 FilePermission 物件的 FilePermissionCollection,有一個用於所有的 SocketPermission 物件的 SocketPermissionCollection,等等。它的 add 方法將權限添加到恰當的集合。

只要將一個權限添加到不同種類別的 PermissionCollection(如 Permissions),並且 PermissionCollection 尚未包含指定權限型別的 PermissionCollection,PermissionCollection 都應該對該權限的類別調用 newPermissionCollection 方法來查看其是否需要特殊的 PermissionCollection。如果 newPermissionCollection 返回 null,則 PermissionCollection 可以將權限隨意存儲在它需要的任何型別的 PermissionCollection 中(使用 Hashtable 的,使用 Vector 的,等等)。例如,Permissions 物件使用預設的 PermissionCollection 實作,該實作將權限存儲在 Hashtable 中。

PermissionCollection 的子類別實作應該假定它們可能在多個執行緒中被同時調用,因此應該被正確地同步。此外,通過 elements 方法返回的列舉不是快速失敗 的。正在對一個集合進行列舉時,不應該修改該集合。

另請參見:
Permission, Permissions, 序列化表格

建構子摘要
PermissionCollection()
           
 
方法摘要
abstract  void add(Permission permission)
          將一個權限物件添加到當前權限物件的集合。
abstract  Enumeration<Permission> elements()
          返回集合中所有 Permission 物件的列舉。
abstract  boolean implies(Permission permission)
          查看此 PermissionCollection 中保存的 Permission 物件集合是否暗含指定的權限。
 boolean isReadOnly()
          如果此 PermissionCollection 物件被標記為只讀,則返回 true。
 void setReadOnly()
          將此 PermissionCollection 物件標記為 "readonly"。
 String toString()
          返回描述此 PermissionCollection 物件的字元串,提供該物件中包含的關於所有權限的資訊。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

PermissionCollection

public PermissionCollection()
方法詳細資訊

add

public abstract void add(Permission permission)
將一個權限物件添加到當前權限物件的集合。

參數:
permission - 要添加的 Permission 物件。
拋出:
SecurityException - 如果此 PermissionCollection 物件已被標記為只讀。

implies

public abstract boolean implies(Permission permission)
查看此 PermissionCollection 中保存的 Permission 物件集合是否暗含指定的權限。

參數:
permission - 要比較的 Permission 物件。
返回:
如果集合中的權限暗含 "permission",則返回 true;否則返回 false。

elements

public abstract Enumeration<Permission> elements()
返回集合中所有 Permission 物件的列舉。

返回:
所有 Permission 的列舉。

setReadOnly

public void setReadOnly()
將此 PermissionCollection 物件標記為 "readonly"。當 PermissionCollection 物件被標記為只讀後,不能使用 add 向其中添加任何新的 Permission 物件。


isReadOnly

public boolean isReadOnly()
如果此 PermissionCollection 物件被標記為只讀,則返回 true。如果它是只讀的,則不能使用 add 向其中添加任何新的 Permission 物件。

預設情況下,物件 是只讀的。它可以通過調用 setReadOnly 設置為只讀。

返回:
如果此 PermissionCollection 物件被標記為只讀,則返回 true ;否則返回 false。

toString

public String toString()
返回描述此 PermissionCollection 物件的字元串,提供該物件中包含的關於所有權限的資訊。格式為:
super.toString() (
   // enumerate all the Permission
   // objects and call toString() on them,
   // one per line..
 )
super.toString 調用此物件的父級類別的 toString 方法,其父級類別是 Object。結果是此 PermissionCollection 的型別名稱,後跟此物件的雜湊碼,因此使客戶端能區分不同的 PermissionCollections 物件,即使它們包含相同的權限。

覆寫:
類別 Object 中的 toString
返回:
有關此 PermissionCollection 物件的資訊,如上所述。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only