Класс PermissionCollection
- Все реализуемые интерфейсы:
Serializable
- Прямые известные подклассы:
Permissions
public abstract class PermissionCollection extends Object implements Serializable
С помощью PermissionCollection, вы можете:
- добавить разрешение в коллекцию, используя метод
add. - проверить, подразумевается ли конкретное разрешение в коллекции, используя метод
implies. - перечислить все разрешения, используя метод
elements.
Когда требуется сгруппировать несколько объектов Permission одного типа, необходимо сначала вызвать метод newPermissionCollection на конкретном объекте типа Permission. По умолчанию (из класса Permission) возвращается null. Подклассы класса Permission переопределяют метод, если им необходимо хранить разрешения в определенном объекте PermissionCollection, чтобы обеспечить правильную семантику при вызове метода PermissionCollection.implies. Если возвращается значение отличное от null, этот объект 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, не являются fail-fast. Изменения в коллекции не должны выполняться во время перечисления по этой коллекции.
- С тех пор:
- 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если "permission" подразумевается разрешениями в коллекции,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, даже если они содержат одинаковые разрешения.- Переопределяет:
-
toStringв классеObject - Возвращает:
- информация об этом объекте
PermissionCollection, как описано выше.
© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/security/PermissionCollection.html