Класс PermissionCollection
- Все реализуемые интерфейсы:
Serializable
- Непосредственные известные подклассы:
Permissions
public abstract class PermissionCollection extends Object implements Serializable
С помощью этого класса вы можете:
- добавить разрешение в коллекцию, используя метод
add. - проверить, подразумевается ли конкретное разрешение в коллекции, используя метод
implies. - перечислить все разрешения, используя метод
elements.
Когда необходимо сгруппировать несколько объектов Permission одного типа, метод newPermissionCollection на объекте этого конкретного типа Permission должен быть вызван в первую очередь. По умолчанию (из класса Permission) возвращается просто null. Подклассы класса Permission переопределяют этот метод, если им необходимо хранить свои разрешения в определенном объекте PermissionCollection, чтобы обеспечить правильную семантику при вызове метода PermissionCollection.implies. Если возвращается ненулевое значение, этот объект PermissionCollection должен быть использован. Если возвращается null, то вызывающий метод newPermissionCollection свободен хранить разрешения заданного типа в любом объекте PermissionCollection, который он выберет (объект, использующий Hashtable, объект, использующий Vector и т.д.).
Коллекция, возвращаемая методом Permission.newPermissionCollection, представляет собой однородную коллекцию, которая хранит только объекты Permission для данного типа разрешения. Также возможна разнородная коллекция PermissionCollection. Например, Permissions является подклассом PermissionCollection, который представляет коллекцию объектов PermissionCollection. То есть, его члены представляют собой однородные объекты PermissionCollection. Например, объект Permission может содержать коллекцию для всех объектов FilePermission, коллекцию для всех объектов SocketPermission и так далее. Его метод add добавляет разрешение в соответствующую коллекцию.
Всякий раз, когда разрешение добавляется в разнородную коллекцию PermissionCollection, например, Permissions, и коллекция еще не содержит коллекцию PermissionCollection указанного типа разрешения, метод PermissionCollection должен вызвать метод newPermissionCollection на классе разрешения, чтобы проверить, требует ли оно специальной коллекции PermissionCollection. Если метод newPermissionCollection возвращает null, то PermissionCollection свободен хранить разрешение в любом типе коллекции PermissionCollection (коллекция, использующая Hashtable, коллекция, использующая Vector и т.д.). Например, объект Permissions использует реализацию по умолчанию для PermissionCollection, которая хранит объекты разрешений в Hashtable.
Реализации подклассов класса PermissionCollection должны предполагать, что они могут вызываться одновременно из нескольких потоков, и поэтому должны быть должным образом синхронизированы. Кроме того, перечисления, возвращаемые методом elements, не являются *быстродействующими*. Изменения в коллекции не должны выполняться во время перечисления элементов этой коллекции.
- С момента:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PermissionCollection() |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
add |
Добавляет объект разрешения в текущую коллекцию объектов разрешений. |
abstract Enumeration |
elements() |
Возвращает перечисление всех объектов Permission в коллекции. |
Stream |
elementsAsStream() |
Возвращает поток всех объектов Permission в коллекции. |
abstract boolean |
implies |
Проверяет, подразумевается ли указанное разрешение коллекцией объектов Permission, хранящихся в этом объекте PermissionCollection. |
boolean |
isReadOnly() |
Возвращает true, если этот объект PermissionCollection помечен как только для чтения. |
void |
setReadOnly() |
Помечает этот объект PermissionCollection как "только для чтения". |
String |
toString() |
Возвращает строку, описывающую этот объект PermissionCollection, предоставляя информацию обо всех разрешениях, которые он содержит. |
Подробное описание конструкторов
PermissionCollection
public PermissionCollection()
Подробное описание методов
add
public abstract void add(Permission permission)
- Параметры:
-
permission- добавляемый объект Permission. - Исключения:
-
SecurityException- если этот объектPermissionCollectionпомечен как только для чтения -
IllegalArgumentException- если этот объектPermissionCollectionявляется однородной коллекцией, и разрешение не является правильного типа.
implies
public abstract boolean implies(Permission permission)
Permission, хранящихся в этом объекте PermissionCollection.- Параметры:
-
permission- сравниваемый объектPermission. - Возвращает:
-
true, если "разрешение" подразумевается разрешениями в коллекции,false— в противном случае.
elements
public abstract Enumeration<Permission> elements()
- Возвращает:
- перечисление всех объектов Permissions.
- См. также:
elementsAsStream
public Stream<Permission> elementsAsStream()
Коллекция не должна быть изменена (см. add(java.security.Permission)) во время выполнения заключительной операции потока. В противном случае результат заключительной операции потока неопределен.
- Требования к реализации:
- Реализация по умолчанию создает поток, источником которого является перечисление, возвращаемое вызовом
elements(). - Возвращает:
- поток всех объектов Permissions.
- С момента:
- 9
setReadOnly
public void setReadOnly()
PermissionCollection как "только для чтения". После того, как объект PermissionCollection помечен как только для чтения, новые объекты Permission не могут быть добавлены в него с помощью метода add.isReadOnly
public boolean isReadOnly()
true, если этот объект PermissionCollection помечен как только для чтения. Если он помечен как только для чтения, новые объекты Permission не могут быть добавлены в него с помощью метода add. По умолчанию объект не помечен как только для чтения. Он может быть помечен как только для чтения с помощью вызова метода setReadOnly.
- Возвращает:
-
true, если этот объектPermissionCollectionпомечен как только для чтения,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, даже если они содержат одинаковые разрешения.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/security/PermissionCollection.html