Класс PermissionCollection
- java.lang.Object
-
- java.security.PermissionCollection
- Все реализованные интерфейсы:
Serializable
- Прямые известные подклассы:
Permissions
public abstract class PermissionCollection extends Object implements Serializable
Абстрактный класс, представляющий коллекцию объектов Permission.
С помощью PermissionCollection вы можете:
- добавить разрешение в коллекцию, используя метод
add. - проверить, подразумевается ли определенное разрешение в коллекции, используя метод
implies. - перечислить все разрешения, используя метод
elements.
Когда необходимо сгруппировать несколько объектов Permission одного типа, сначала следует вызвать метод newPermissionCollection на объекте данного типа Permission. По умолчанию (из класса Permission) метод просто возвращает null. Подклассы класса Permission переопределяют этот метод, если им нужно хранить свои разрешения в определённом объекте PermissionCollection, чтобы обеспечить правильную семантику при вызове метода PermissionCollection.implies. Если возвращается не null, то следует использовать этот PermissionCollection. Если возвращается null, тогда вызывающий метод newPermissionCollection свободен хранить разрешения данного типа в любом выбранном PermissionCollection (например, использующем Hashtable, Vector и т.д.).
PermissionCollection, возвращаемый методом Permission.newPermissionCollection, представляет собой однородную коллекцию, хранящую только объекты Permission для данного типа Permission. PermissionCollection также может быть неоднородным. Например, Permissions — это подкласс PermissionCollection, представляющий коллекцию PermissionCollections. То есть, его члены являются однородными PermissionCollection. Например, объект Permissions может содержать 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
- См. также:
-
Permission,Permissions, Формат сериализации
Конструкторы
| Конструктор | Описание |
|---|---|
PermissionCollection() |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
add(Permission permission) |
Добавляет объект разрешения в текущую коллекцию объектов разрешений. |
abstract Enumeration<Permission> |
elements() |
Возвращает перечисление всех объектов Permission в коллекции. |
Stream<Permission> |
elementsAsStream() |
Возвращает поток всех объектов Permission в коллекции. |
abstract boolean |
implies(Permission permission) |
Проверяет, подразумевает ли указанное разрешение коллекция объектов Permission, содержащихся в этом PermissionCollection. |
boolean |
isReadOnly() |
Возвращает true, если этот объект PermissionCollection помечен как только для чтения. |
void |
setReadOnly() |
Помечает этот объект PermissionCollection как "только для чтения". |
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 помечен как только для чтения -
IllegalArgumentException- - если этот объект PermissionCollection является однородной коллекцией, и разрешение не является корректного типа.
implies
public abstract boolean implies(Permission permission)
Проверяет, подразумевает ли указанное разрешение коллекция объектов Permission, содержащихся в этом PermissionCollection.
- Параметры:
-
permission- объект Permission для сравнения. - Возвращает:
- true, если "permission" подразумевается разрешениями в коллекции, false — в противном случае.
elements
public abstract Enumeration<Permission> elements()
Возвращает перечисление всех объектов Permission в коллекции.
- Возвращает:
- перечисление всех Permissions.
- См. также:
elementsAsStream()
elementsAsStream
public Stream<Permission> elementsAsStream()
Возвращает поток всех объектов Permission в коллекции.
Коллекция не должна модифицироваться (см. 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, за которым следует хэш-код этого объекта, что позволяет клиентам различать разные объекты PermissionCollections, даже если они содержат одинаковые разрешения.
© 1993, 2020, 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/11/docs/api/java.base/java/security/PermissionCollection.html