Класс PermissionCollection
- Все реализуемые интерфейсы:
Serializable
- Прямые известные подклассы:
Permissions
public abstract class PermissionCollection extends Object implements Serializable
С помощью PermissionCollection можно:
- добавить разрешение в коллекцию с помощью метода
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 может содержать FilePermissionCollection для всех объектов FilePermission, SocketPermissionCollection для всех объектов SocketPermission и так далее. Его метод add добавляет разрешение в соответствующую коллекцию.
При добавлении разрешения в разнородный PermissionCollection, например Permissions, если в PermissionCollection ещё нет 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, если «разрешение» подразумевается разрешениями в коллекции, иfalseв противном случае.
elements
public abstract Enumeration<Permission> elements()
- Возвращает:
- перечисление всех разрешений.
- См. также:
elementsAsStream
public Stream<Permission> elementsAsStream()
Во время выполнения терминальной операции потока коллекцию не следует изменять (см. add(Permission)). В противном случае результат терминальной операции потока не определён.
- Требования к реализации:
- Реализация по умолчанию создаёт поток, источником которого служит перечисление, возвращаемое вызовом
elements(). - Возвращает:
- поток всех разрешений.
- С версии:
- 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/PermissionCollection.html